Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño /...

Preview:

Citation preview

Patrones GRASPPatrones GRASP

ANALISIS Y DISEÑO O.O. (LCD 2006-1)ANALISIS Y DISEÑO O.O. (LCD 2006-1)

base: Arquitectura de Softwarebase: Arquitectura de SoftwareJulio Carreño / César BustacaraJulio Carreño / César Bustacara

Patrones GRASPPatrones GRASP

General Responsabilities General Responsabilities Assignment Software Patterns Assignment Software Patterns

PATRONESPATRONES

Solución a Problemas recurrentesSolución a Problemas recurrentes Capturar las Mejores Prácticas de DiseñoCapturar las Mejores Prácticas de Diseño NO son siempre la mejor soluciónNO son siempre la mejor solución Facilitan la comunicaciónFacilitan la comunicación BENEFICIOSBENEFICIOS

MantenibilidadMantenibilidad ExtensibilidadExtensibilidad ReestructuraciónReestructuración PortabilidadPortabilidad

CONOCERCONOCER

Información privadaInformación privada Objetos relacionadosObjetos relacionados Lo que puede Lo que puede

derivar/calcularderivar/calcular Ej: Métodos analizadores Ej: Métodos analizadores

"get""get"

HACERHACER

Algo él mismoAlgo él mismo Ejecutar un cálculoEjecutar un cálculo Crear un objetoCrear un objeto Iniciar acciones en otros Iniciar acciones en otros

ObjetosObjetos Controlar/Coordinar Controlar/Coordinar

actividades en otros Objetosactividades en otros Objetos Ej: Métodos modificadores Ej: Métodos modificadores

"set""set"

ExpertoExperto

BENEFICIOBENEFICIO

Conserva el Conserva el EncapsulamientoEncapsulamiento

Bajo AcoplamientoBajo Acoplamiento Alta CohesiónAlta Cohesión

EjemploEjemplo

Asociaciones de VentaAsociaciones de Venta Calculo Total de la VentaCalculo Total de la Venta Métodos a implementarMétodos a implementar

Ejemplo: ExpertoEjemplo: Experto

Asociaciones de VentaAsociaciones de Venta

Ejemplo: ExpertoEjemplo: Experto

Calculo Total de la VentaCalculo Total de la Venta

Ejemplo: ExpertoEjemplo: Experto

Métodos a implementarMétodos a implementar

CreadorCreador

El Objeto B tiene la El Objeto B tiene la responsabilidad de tener un responsabilidad de tener un método para creación de objetos A método para creación de objetos A si...si...

B agrega objetos AB agrega objetos A B contiene objetos AB contiene objetos A B registra objetos AB registra objetos A B usa exhaustivamente B usa exhaustivamente

objetos Aobjetos A B posee info para iniciar AB posee info para iniciar A

BENEFICIOBENEFICIO

Bajo AcoplamientoBajo Acoplamiento

Ejemplo: CreadorEjemplo: Creador

Agregar Items de VentaAgregar Items de Venta

Bajo AcoplamientoBajo Acoplamiento

¿Cómo soportar bajo grado ¿Cómo soportar bajo grado de dependencia entre clases?de dependencia entre clases?

Modelo DESCENTRALIZADO Modelo DESCENTRALIZADO (ver dos objetos a lo mas!)(ver dos objetos a lo mas!)

Para clases que cambian Para clases que cambian constantemente...constantemente...

Para reutilización!Para reutilización!

BENEFICIOBENEFICIO

No se afectan por cambios No se afectan por cambios en otros componentesen otros componentes

Fáciles de entender por Fáciles de entender por separadoseparado

Fáciles de reutilizarFáciles de reutilizar

Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento

Diseño DescentralizadoDiseño Descentralizado Diseño CentralizadoDiseño Centralizado Propuesta Solución UNOPropuesta Solución UNO Propuesta Solución DOSPropuesta Solución DOS

Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento

Diseño DescentralizadoDiseño Descentralizado

Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento

Diseño CentralizadoDiseño Centralizado

Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento

Propuesta Solución UNOPropuesta Solución UNO

Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento

Propuesta Solución DOSPropuesta Solución DOS

Alta CohesiónAlta Cohesión

BENEFICIOBENEFICIO

Mejoran la claridad del Mejoran la claridad del DiseñoDiseño

Simplificación del cambioSimplificación del cambio Genera bajo acoplamientoGenera bajo acoplamiento Facilita la reutilizaciónFacilita la reutilización

EjemploEjemplo

Alta CohesiónAlta Cohesión Baja CohesiónBaja Cohesión

Ejemplo: Alta CohesiónEjemplo: Alta Cohesión

Alta CohesiónAlta Cohesión

Ejemplo: Alta CohesiónEjemplo: Alta Cohesión

Baja CohesiónBaja Cohesión

ControladorControlador

Un coordinador... (por caso de Un coordinador... (por caso de uno!)uno!)

Que representa el sistema: Que representa el sistema: FACHADA!FACHADA!

Que representa un rol Que representa un rol activo: TAREAS!activo: TAREAS!

Un manejador artificial: Un manejador artificial: SESSION!SESSION!

BENEFICIOBENEFICIO

Mayor potencial de los Mayor potencial de los Componentes reutilizablesComponentes reutilizables

EjemploEjemplo

Opciones de ControladorOpciones de Controlador Solución DeseableSolución Deseable No muy buena SoluciónNo muy buena Solución

Ejemplo: ControladorEjemplo: Controlador

Opciones de ControladorOpciones de Controlador

Ejemplo: ControladorEjemplo: Controlador

Solución DeseableSolución Deseable

Ejemplo: ControladorEjemplo: Controlador

No muy buena SoluciónNo muy buena Solución

FachadaFachada

EjemploEjemplo

FachadaFachada

Patrones GRASPPatrones GRASP

Recommended