1 ANALISIS Y DISEÑO O.O. (LCD 2006-1)Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD ) base: Arquitectura de Software Julio Carreño / César Bustacara
2 Patrones GRASP
3 General Responsabilities Assignment Software Patterns
4 PATRONES Solución a Problemas recurrentesCapturar las Mejores Prácticas de Diseño NO son siempre la mejor solución Facilitan la comunicación BENEFICIOS Mantenibilidad Extensibilidad Reestructuración Portabilidad
5 CONOCER Información privada Objetos relacionadosLo que puede derivar/calcular Ej: Métodos analizadores "get"
6 HACER Algo él mismo Ejecutar un cálculo Crear un objetoIniciar acciones en otros Objetos Controlar/Coordinar actividades en otros Objetos Ej: Métodos modificadores "set"
7 Experto
8 BENEFICIO Conserva el Encapsulamiento Bajo Acoplamiento Alta Cohesión
9 Ejemplo Asociaciones de Venta Calculo Total de la VentaMétodos a implementar
10 Ejemplo: Experto Asociaciones de Venta
11 Ejemplo: Experto Calculo Total de la Venta
12 Ejemplo: Experto Métodos a implementar
13 Creador
14 El Objeto B tiene la responsabilidad de tener un método para creación de objetos A si...B agrega objetos A B contiene objetos A B registra objetos A B usa exhaustivamente objetos A B posee info para iniciar A
15 BENEFICIO Bajo Acoplamiento
16 Ejemplo: Creador Agregar Items de Venta
17 Bajo Acoplamiento
18 ¿Cómo soportar bajo grado de dependencia entre clases?Modelo DESCENTRALIZADO (ver dos objetos a lo mas!) Para clases que cambian constantemente... Para reutilización!
19 BENEFICIO No se afectan por cambios en otros componentesFáciles de entender por separado Fáciles de reutilizar
20 Ejemplo: Bajo AcoplamientoDiseño Descentralizado Diseño Centralizado Propuesta Solución UNO Propuesta Solución DOS
21 Ejemplo: Bajo AcoplamientoDiseño Descentralizado
22 Ejemplo: Bajo AcoplamientoDiseño Centralizado
23 Ejemplo: Bajo AcoplamientoPropuesta Solución UNO
24 Ejemplo: Bajo AcoplamientoPropuesta Solución DOS
25 Alta Cohesión
26 BENEFICIO Mejoran la claridad del Diseño Simplificación del cambioGenera bajo acoplamiento Facilita la reutilización
27 Ejemplo Alta Cohesión Baja Cohesión
28 Ejemplo: Alta Cohesión
29 Ejemplo: Alta CohesiónBaja Cohesión
30 Controlador
31 Un coordinador... (por caso de uno!)Que representa el sistema: FACHADA! Que representa un rol activo: TAREAS! Un manejador artificial: SESSION!
32 BENEFICIO Mayor potencial de los Componentes reutilizables
33 Ejemplo Opciones de Controlador Solución DeseableNo muy buena Solución
34 Ejemplo: Controlador Opciones de Controlador
35 Ejemplo: Controlador Solución Deseable
36 Ejemplo: Controlador No muy buena Solución
37 Fachada
38 Ejemplo Fachada
39 Patrones GRASP