Pirámide del diseño orientado a objetos

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,04 KB

[ap] patrones de diseño:


Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, así como la solución a ese problema, de tal modo que se pueda aplicar esta solución indefinidamente sin hacer lo mismo dos veces. La diferencia entre un patrón y un idioma está en su alcance. En un patrón, tanto la solución como el problema son lo suficientemente genéricos como para ser independientes del lenguaje de programación, en cambio, un idioma es un patrón de bajo nivel específico a un lenguaje de programación.
Carácterísticas:*
Refinan un subsistema o un componente en un sistema software. *Describen una estructura a la cual muchas veces recurrimos para resolver problemas de diseño. *No afectan a la arquitectura de un sistema. *Patones de escala media. *No dependen del lenguaje de implementación. *Permiten resolver problemas complejos y direccionan la cooperación efectiva entre componentes.

Elementos:

Nombre: debe poder describir un problema, sus soluciones y la consecuencia. *Problema: describe cuando se puede aplicar el patrón. Explica el problema y su contexto. *Solución: es una descripción abstracta que detalla los elementos que forman el diseño, sus relaciones, responsabilidades y cooperaciones. *Consecuencias: los buenos resultados e inconvenientes de aplicar el patrón. Son críticas para evaluarlo y entender los costos y los beneficios de aplicarlo.

A que nos ayudan los patrones


*Encontrar objetos: lo más complicado del diseño orientado a objetos es descomponer un sistema en objetos debido a que entran en juego factores como la encapsulación, reutilización, rendimiento, etc. Los patrones de diseño ayudan a identificar abstracciones menos obvias y los objetos que la expresan. *Determinar granularidad de los objetos: los objetos pueden variar enormemente en tamaño y número. Pueden representar cualquier cosa, desde hardware hasta aplicaciones completas. Los patrones de diseño se encargan también de decidir que debería ser un objeto.
*Especificar interfaces: Los patrones de diseño ayudan a definir interfaces identificando sus elementos claves y los tipos de datos que se envían a la interfaz. También especifican relaciones entre interfaces. * Favorecer la reutilización. *Estructuras que relacionan tiempo de ejecución y tiempo de compilación

Clasificación



*Creación

Abstraen el proceso de creación de objetos, logrando que este sea más flexible a través de la separación de intereses. Es decir, ayudan a hacer un sistema independiente de cómo se crean, se componen y se representan sus objetos. Un patrón de creación de clases usa la herencia para cambiar la clase de la instancia a crear, mientras que uno de objetos delega la creación de la instancia a otro objeto. Singleton (Único): Garantiza que una clase tenga una única instancia y proporciona un punto de acceso global a ella. Builder (Constructor): Separa la construcción de un objeto complejo de su representación, de forma que el mismo proceso de construcción pueda crear diferentes representaciones.*

Estructurales

Se ocupan de cómo combinar las clases y los objetos para formar estructuras más grandes. Nos ayuda a comunicar dos clases incompatibles, añadir funcionalidad a objetos. Los patrones estructurales de clases usan la herencia para componer interfaces o implementaciones, mientras que los de objetos describen formas de componer objetos para tener nueva funcionalidad. Composite (Compuesto): Combina objetos en estructuras de árbol para representar jerarquías de todo-parte. Permite que los clientes traten de manera uniforme a los objetos individuales y a los compuestos. Fachada: Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema. Define una interfaz de alto nivel que hace que el subsistema sea más fácil de utilizar. *

Comportamiento

Tienen que ver con algoritmos y con la asignación de responsabilidades a objetos. Describen no solo patrones de clases y objetos, sino también patrones de comunicación entre ellos. Los patrones de comportamiento basados en clases usan la herencia para distribuir el comportamiento entre clases, los basados en objetos usan la composición. Algunos describen como cooperan un grupo de objetos para realizar tareas complejas, reduciendo las dependencias entre ellos. Otros están relacionados con la encapsulación de comportamiento de un objeto, delegando las peticiones a dicho objeto. Iterator,observer,state ,strategy,etc.

[ap] Los propósitos del Diseño son:*
Adquirir una comprensión profunda de aspectos relacionados con requerimientos no funcionales y restricciones del entorno de implementación. *Refinar los requerimientos para subsistemas, clases e interfaces individuales.*Descomponer el trabajo de implementación en piezas manejables por diferentes equipos de desarrollo. *Capturar interfaces entre subsistemas. *Crear una abstracción de la implementación del sistema.

Entradas relacionadas: