Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Alex Rodríguez en 18 de Abril 2015, 23:07

Título: Diseño orientado a objetos: cómo diseñar clases y relaciones de herencia DOO POO
Publicado por: Alex Rodríguez en 18 de Abril 2015, 23:07
Adjunto un archivo con un artículo sobre diseño orientado a objetos que pienso puede ser de interés

Saludos
Título: Re:Diseño orientado a objetos: cómo diseñar clases y relaciones de herencia
Publicado por: Dan_SB en 19 de Abril 2015, 01:27
Gracias por el documento ! Muy util su info!
Título: Re:Diseño orientado a objetos: cómo diseñar clases y relaciones de herencia DOO POO
Publicado por: toni_apr en 20 de Abril 2015, 22:23
Hola

Documento muy interesante.

Al leerlo me ha hecho recordar otros escritos donde se recomendaba crear estructuras de clases que resistan el paso del tiempo, que permitan la ampliación de la estructura sin desmontarla.

Esto hace que mis comentarios en hilos precedentes sean inadecuados.
Me refiero a la creación de estructuras de clases organizadas por atributos comunes descartando la clasificación de los objetos en el mundo real (que es lo que en definitiva queremos meter en nuestra estructura de clases)

Erróneamente creia que la compactación de clases y atributos tenía un valor positivo.

Así pues, descarto la compactación y abogo por la modularidad y reutilización en la creación de una estructura de clases.

Saludos
Título: Re:Diseño orientado a objetos: cómo diseñar clases y relaciones de herencia DOO POO
Publicado por: Alex Rodríguez en 21 de Abril 2015, 09:58
Hola toni, me parece una reflexión acertada como las que haces habitualmente. El diseño del software (y más ampliamente toda la organización en torno a los grandes desarrollos de software donde intervienen decenas, cientos o miles de programadores en un proyecto, lo que se llama ingeniería del software) es algo todavía muy discutido, aunque hay un cierto grado de consenso sobre que es muy importante la ampliabilidad y la mantenibilidad. En un proyecto con miles de líneas de código en general se prefiere generar unas cuantas líneas más (aunque no sea óptimo) para hacer el código más legible y comprensible, porque a la larga esto tiene una repercusión positiva en el mantenimiento y ampliación. Creo que lo que indicas de compactación de clases y atributos tiene un valor positivo, pero todo hay que verlo en un contexto más amplio donde hay que poner en la balanza ventajas e inconvenientes y dado que no hay soluciones óptimas, elegir la que aporte más ventajas. La compactación es un buen valor para un programador, pero siempre que no vaya en contra de la claridad, la mantenibilidad, la ampliabilidad, etc. Creo que más o menos he dicho lo mismo que tú decías.

Saludos