Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: 16BITBoy en 1 Julio 2010, 10:29 am



Título: Paradigmas de programación
Publicado por: 16BITBoy en 1 Julio 2010, 10:29 am
Yo de siempre, he programado mis pequeños programas y scripts usando programación modular / esctructurada. Se que para el programador, una vez acostumbrado a escribir el código en POO, luego le es mas fácil aun reutilizar el código escrito para otros programas, pero :
¿Hay alguna ventaja real en aprender (bueno en aprender si, que puedes usar java por ejemplo), o mejor dicho, hay alguna ventaja para usar la programación orientada a objetos para el programa mismo? ¿Existe algún tipo de optimización en el programa? O bien sea programado en estructurado o POO sale el mismo código nativo, igual de eficiente, seguro y tal... (pongamos, C y C++).
Me surgió la duda, hace un año reescribí un juego que escribí originalmente en C y lo pase, medio medio (pues no me acostumbraba del todo a POO) a C++.

Llevo unos días programando en python, pero la orientación a objetos apenas la uso, uso si acaso los métodos que ya vienen de clases que ya están hechas de la librería.




Título: Re: Paradigmas de programación
Publicado por: leogtz en 1 Julio 2010, 19:47 pm
No es tanto cuestión del paradigma, porque bien lo puedes adaptar a programación estructurada, sino las ventajas que acarrea la POO, para ti y para los que vayan a trabajar contigo.


Título: Re: Paradigmas de programación
Publicado por: carlitos_jajajajaja en 3 Julio 2010, 18:48 pm
La POO me ha quitado muchos dolores de cabeza:

-Puedo escribir codigo a prueba de tontos: Esta ventaja me lada el encapsulamiento porque me permite ocultar del usuario finl campos que no deberia tocar. haciendo de mis programas muy resistentes a los fallos. Por ejemplo, imaginate que tengo una estructura de datos para manejar las muchas colasde prioridad que tiene la sucursal de un banco. Asi tendria que hacerlo en c:
Código
  1. /*Primero tengo que crear una libreria que manipule colas especificamente para tipos de datos ficha_cliente*/
  2. #include "Cola.h"
  3. typedef struct
  4. {
  5.     Cola* Cola_VIP;
  6.     Cola* Cola_Platino;
  7.     Cola* Cola_TerceraEdad;
  8.     Cola* Cola_Otros;
  9.     Ficha_cliente* SiguienteEnCola;
  10. }ColaPrioridad;
  11.  
Luego defino unafuncion que por ejemplo dada la ficha del cliente, decida a que cola agragarlo, y otra que dadas las colas, decidir quien debera ser el siguiente en ser atendido, pero eso debo hacerlo manualmente cada vez que saco a un cliente de la cola, ademas si un mal programador hace mal uso de esta estructura, podria arruinar las colas, no liberar la memoria correctamente y un sin fin de otros errores.


En cambio si creo una clase que solo muestre al usuario de esta 2 metodos: Agregar_Cliente(FichaCliente* nuevo) y SiguienteCliente(); Este solo podra usar una de esas clases y no podra challarla ni intentarechar,me la culpaa mi por crear una mala libreria