arquitectura aplicaciones patrones de diseño

17

Click here to load reader

Upload: germania-rodriguez

Post on 02-Jul-2015

1.427 views

Category:

Education


5 download

DESCRIPTION

Patrones de diseño SW

TRANSCRIPT

Page 1: Arquitectura aplicaciones Patrones de diseño

Germania Rodríguez [email protected]

Arquitectura de Aplicaciones

Page 2: Arquitectura aplicaciones Patrones de diseño

Patrones de Diseño

•  Introducción – La construcción de software – tarea

complicada – Depende de la experiencia de las personas

- desarrolladores – El 80% de los aportes viene del 20% del

personal – El 80% del esfuerzo está en el 20% del

código desarrollado

Page 3: Arquitectura aplicaciones Patrones de diseño

Objetivo REUTILIZACIÓN

Patrones de Diseño

Page 4: Arquitectura aplicaciones Patrones de diseño

• Mecanismos de reutilización – Componentes – Frameworks – Objetos distribuidos – PATRONES DE DISEÑO

Patrones de Diseño

Page 5: Arquitectura aplicaciones Patrones de diseño

“Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo siquiera dos veces de la misma forma” - Christopher Alexander

Patrones de Diseño

Page 6: Arquitectura aplicaciones Patrones de diseño

• Objetivo: crear un lenguaje común a una comunidad de desarrolladores para comunicar experiencia sobre los problemas y sus soluciones

Patrones de Diseño

Page 7: Arquitectura aplicaciones Patrones de diseño

• Características –  Solucionar un problema –  Ser un concepto probado –  La solución no es obvia –  Describe participantes y sus relaciones

Patrones de Diseño

Page 8: Arquitectura aplicaciones Patrones de diseño

•  Elementos 1.  El nombre del patrón 2.  El problema 3.  La solución 4.  Las consecuencias - resultados

Patrones de Diseño

Page 9: Arquitectura aplicaciones Patrones de diseño

•  Clasificación

Ámbito Propósito

Patrones de Creación

Patrones estructurales

Patrones de Comportamiento

Clase •  Factory Method •  Adapter (de clases)

•  Interpreter •  Template Method

Objeto •  Abstract Factory •  Builder •  Prototype •  Singleton

•  Adapter (de objetos)

•  Bridge •  Composite •  Decorator •  Facade •  Flyweight •  Proxy

•  Chain of Responsibility •  Command •  Iterator •  Mediator •  Memento •  Observer •  State •  Strategy •  Visitor

Patrones de Diseño

Page 10: Arquitectura aplicaciones Patrones de diseño

Su propósito principal es abstraer el proceso de creación de instancias. Ayudan a hacer un sistema independiente de cómo se crean, se componen y se representan sus objetos - Un patrón de clases usa la herencia para cambiar la clase de la instancia a crear, mientras que un patrón de objetos delega la creación de la instancia en otro objeto. Éstos a su vez se clasifican en:

Fabrica Abstracta (Abstract Factory) Proporciona una interfaz para crear familias de objetos o que dependen entre sí, sin especificar sus clases concretas.

Constructor (Builder) Separa la construcción de un objeto de su representación.

Método de Fábrica (Factory Method) Define una interfaz para crear un objeto.

Prototipo (Prototype) Especifica los tipos de objetos a crear por medio de una instancia prototípica y crea nuevos objetos copiando dicho prototipo.

Instancia única (Singleton) Garantiza que una clase solo tenga una instancia

Patrones de Diseño PATRONES DE CREACIÓN

Page 11: Arquitectura aplicaciones Patrones de diseño

Se ocupan de cómo se combinan las clases y los objetos para formar estructuras más grandes - Los patrones estructurales de clases hacen uso de la herencia para componer interfaces o implementaciones. En éste tipo de patrones se encuentran:

Adaptador (Adapter) Convierte la interfaz de una clase en otra interfaz que es la que esperan los clientes.

Puente (Bridge) Desacopla una abstracción de su implementación

Compuesto (Composite) Compone objetos en estructuras de árbol para representar jerarquías de parte-todo.

Decorador (Decorator) Asigna responsabilidades adicionales a un objeto dinámicamente

Fachada (Facade) Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema.

Peso ligero (Flyweight) Una instancia de grano fino usada para compartir eficientemente

Apoderado (Proxy) Un objeto representando otro objeto

Patrones de Diseño PATRONES ESTRUCTURALES

Page 12: Arquitectura aplicaciones Patrones de diseño

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.

Cadena de responsabilidad (Chain of responsibility) Encadena los objetos receptores y pasa la petición a través de la cadena hasta que es procesada por algún objeto.

Orden (Command) Encapsula una petición orden como un objeto.

Interprete (Interpreter) Define una forma para incluir elementos de lenguaje en un programa

Iterador (Iterator) Proporciona un modo secuencial para acceder a los elementos de una colección

Mediador (Mediator) Define comunicación simplificada entre clases

Recuerdo (Memento) Captura y restaura el estado interno de un objeto.

Patrones de Diseño PATRONES DE COMPORTAMIENTO

Page 13: Arquitectura aplicaciones Patrones de diseño

Observador (Observer) Define una dependencia de uno a muchos entre objetos

Estado (State) Permite que un objeto modifique su comportamiento cada vez que cambie su estado interno.

Estrategia (Strategy) Define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables.

Método Plantilla (Template method) Define en una operación el esqueleto de un algoritmo, delegando en las subclases algunos de sus pasos.

Visitante (Visitor) Representa una operación sobre los elementos de una estructura de objetos.

Patrones de Diseño PATRONES DE COMPORTAMIENTO

Page 14: Arquitectura aplicaciones Patrones de diseño

•  ¿Cómo seleccionar un patrón de diseño? •  Tipo de problema a resolver •  Que tipos de problemas solucionan un patrón determinado •  Observar las interrelaciones de los patrones •  Visión sistémica (todo) •  Piense que debería ser variable en su diseño.

Patrones de Diseño

Page 15: Arquitectura aplicaciones Patrones de diseño

•  ¿Cómo usar un patrón de diseño? •  Familiarizarse con el Patrón: estructura, participantes y

colaboraciones. •  Examine algunos ejemplos de su codificación •  Elija nombres significativos en el contexto de la aplicación •  Defina las clases •  Defina nombres especificos de la aplicación para las

operaciones del patrón •  Implemente las operaciones para llevar a cabo las

responsabilidades y colaboraciones del patrón.

Patrones de Diseño

Page 16: Arquitectura aplicaciones Patrones de diseño

•  Patrones y Frameworks – Los patrones de d iseño son más

abstractos que los frameworks – Los patrones de diseño son elementos

arquitectónicos más pequeños que los frameworks

– Los patrones están menos especializados que los framework

Patrones de Diseño

Page 17: Arquitectura aplicaciones Patrones de diseño

Bibliografía •  Gamma E., Helm R., Johnson R., Vlissides J., Patrones de

diseño: Elementos de software orientado a objetos reutilizable, Pearson Education S.A., Madrid 2003.

•  Calderon J. , Sistemas IV , h t tp : / /www.s l ideshare.net /videoconferencias/sistemas-iv, UTPL 2007