¿Cómo resuelven los patrones los problemas de Diseño ?

Plan your projects and define important tasks and actions

Jetzt loslegen. Gratis!
oder registrieren mit Ihrer E-Mail-Adresse
¿Cómo resuelven los patrones los problemas de Diseño ? von Mind Map: ¿Cómo resuelven los patrones los problemas de Diseño ?

1. Poniendo a Funcionar los Mecanismos de Reutilización

1.1. Los patrones de diseño pueden mostrar como construir un software flexible y re-utilizable:

1.1.1. Herencia frente a Composición

1.1.1.1. en practicas reales trabajan juntas

1.1.2. Delegación

1.1.2.1. hace que sea más facil combinar comportamientos en tiempo de ejecucion

1.1.3. Herencia frente a Tipos Parametrizados

1.1.3.1. son maneras de combinar comportamientos

2. 2. Determinar la Granularidad de los Objetos

2.1. Problemática: ¿Cómo decidir qué debería ser un objeto?

2.2. los patrones se encargan de esto, por ej los patrones de diseño describen formas concretas de descomponer un objeto en otros más pequeños.

3. Estructuras que Relacionan Tiempo de Ejecución y Tiempo de Compilación

3.1. los patrones de diseño nos ayudan a capturar explicitamente la distinción entre las dos estructuras

4. 3. Especificar las Interfaces de los Objetos

4.1. Problemática; distintos objetos con diferentes funcionalidades, pueden implementar interfaces idénticas

4.2. los patrones nos ayudan a definir interfaces identificando

4.3. también puede decir qué no debemos poner en la interfaz.

4.4. los patrones también especifican las relaciones de las interfaces

5. 1. Encontrar los Objetos Apropiados

5.1. La Complejidad del diseño OO es descomponer un sistema en objetos, demasiados factores entran en juego:

5.1.1. encapsulación

5.1.2. dependencia

5.1.3. flexibilidad

5.1.4. rendimiento

5.1.5. evolucón

5.1.6. etc ...

5.2. Los patrones ayudan a encontrar abstracciones y los objetos que las expresan.

6. 4. Especificar las Implementaciones de los Objetos

7. 5. Herencia de Clases frente a Herencia de Interfaces

7.1. problematica: es muy comun confundir los conceptos de herencia de clases y herencia de interfaces, muchos lenguajes no hacen una diferenciación

7.2. muchos patrones dependen de esta distinción, sueles implementarse con clases abstractas q son interfaces puras

8. 6. Programar para Interfaces, no para una Implementación

8.1. Problematica: Los clientes no tienen por q conocer los objetos q se usan en la implantación, basta q se adieran a su interfaz que es lo q ven

8.2. los patrones de creación ayudan a abstraer el proceso de creación de objetos

8.3. ofrecen distintos modos de asociar una interfaz con su implementación

8.4. los patrones de creación aseguran q se crean en términos de interfaces y no de implementación

9. Diseñar para el Cambio

9.1. los patrones ayudan a evitar posibles causas de rediseño como:

9.1.1. Crear un objeto especificando su clase explícitamente

9.1.2. Dependencia de operaciones concretas.

9.1.3. Dependencia de plataformas hardware o software.

9.1.4. Dependencia de las representaciones o implementaciones de objetos.

9.1.5. Dependencias algorítmicas.

9.1.6. Fuerte acoplamiento.

9.1.7. Añadir funcionalidad mediante la herencia.

9.1.8. Incapacidad para modificar las clases convenientemente.

9.2. los patrones pueden ayudarnos a conseguir flexibilidad en nuestros desarrollos como en las siguientes clases de software:

9.2.1. Programas de aplicación

9.2.2. Toolkits

9.2.3. Frameworks