• Martes 19 de Noviembre de 2024, 07:47

Autor Tema:  Duda con POO programacion orientada a objetos  (Leído 1952 veces)

alonsonic

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Duda con POO programacion orientada a objetos
« en: Martes 14 de Diciembre de 2010, 00:22 »
0
Bueno primero que todo, me aprece exelente esta comunida, y este sera mi primer post!!!

bueno les queria hacer una pregunta sobre una duda que se ah presentada con unos compañeros de estudio, el problema es el siguiente.

en nuestra universidad hay 2 profesores de java uno dice que en apliacion orientada a objetos se pueden crear clases "controladoras" que llevaran metodos para el manejo de ciertas funciones de dicha clase por ejemplo, si necesito manejar una lista de peliculas uso una clase controladora llamada listaPeliculas que tendra un atributo con una lista de clase pelicula, ahora esta clase se encargara de instancear o inicializar esta lista y contener todos los metodos para el manejo de la misma.

el otro profesor por el otro lado, dice que en programacion orientada a objetos esto esta totalmente mal porq segun el principio de alta cohesion y baja dependencia el crear clases "controladoras" es erroneo y crea mas dependencias entre clases, que lo mejor es q la misma clase pelicula tenga sus metodos para manejar las listas y demas, ahora la clase pelicula manejaria muchos mas metodos de esta forma pero abria menos dependencia entre clases, ella llama a esas claes controladoras "clases globales" y q estan mal y no son una buena practica de programacion.

muchas gracias por la respuesta enserio! saludos y sigan con el buen ptrabajo!

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Duda con POO programacion orientada a objetos
« Respuesta #1 en: Martes 14 de Diciembre de 2010, 09:26 »
0
Cita de: "alonsonic"
segun el principio de alta cohesion y baja dependencia
Esto creo que no es una característica inherente de la POO sino de una forma de diseño del software en sí. Es decir, entra más en el dominio de la ingeniería del software que de la POO propiamente dicha.

En todo caso, estoy más a favor de la idea de una clase lista de películas y una clase películas diferenciadas. No veo por qué no se puede tener una clase que contenga otra. Crear una clase lista de películas directamente es peor, porque estarías encapsulando dentro operaciones que realmente no tienen que ver con una lista de películas, sino con una película en sí misma, por ejemplo.

Otra idea sería crear una clase lista genérica, para cualquier tipo de objeto, y así la lista y el objeto en sí no están tan acopladas. Aún así el acoplamiento como digo no es algo que defina claramente el paradigma de POO.

Saludos.

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: Duda con POO programacion orientada a objetos
« Respuesta #2 en: Martes 14 de Diciembre de 2010, 14:55 »
0
Yo pienso que el otro profesor está confundido. Hasta donde se, las clases controladoras corresponden a un patrón llamado "controlador" (véase "Patrones GRASP", también lo vi en el libro de "UML y Patrones" de Larman), y aunque el término no sea exclusivo de la POO, se emplea mucho en sistemas OO, sobre todo en sistemas basados en MVC (Modelo Vista-Controlador). Por otro lado, no veo donde está la dependencia de una clase controladora con la clase, llamemosla "controlada"; si haces un cambio, por ejemplo, a la clase Pelicula, la clase listaPeliculas no se vería perjudicada (a menos que elimines un método de Pelicula que utilice listaPeliculas, lo cual no sería muy correcto), ya que ese cambio se refleja inmediatamente en cada uno de los objetos Pelicula de la lista, y no tienes que modificar a listaPeliculas; y si no me equivoco, esa es la característica de una relación de alta cohesión - bajo acoplamiento/dependencia.

Ponerle más métodos a una clase, no solo no es buena idea (lo llamo "sobrecarga de responsabilidades"), también creas una dependencia innecesaria de esa clase que se hará sentir al momento de hacerle algún cambio al software, y eso te lo digo por experiencia (ya me ha pasado varias veces).
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas