Flashcards
PATRONES
Cards in this deck (26)
- 1PATRONES ESTRUCTURALES BASADOS EN OBJETOS(COMPOSICIÓN)COMPO-DECO-FA-FLY-PRO
- 2COMPOSITECOMPOSITE
+Para construir objetos complejos con otros más simples
+Permite una composición recursiva
+Estructura en forma de árbol.
+Objetos(todos)tienen una interfaz común
+Es fácil añadir nuevos tipos de componentes
-Hay que comprobar tipos en tiempo de ejecución.
-No se puede garantizar que un objeto compuesto solo contenga objetos de las clases que queramos.
Ejemplo: arbol de carpetas y archivos - 3COMPOSITE DIAGRAMA DE CLASES
- 4DECORATOR+Permite añadir funcionalidad a un objeto en tiempo de ejecución sin afectar a otros objetos
+Con la herencia es imposible
+Reduce la cantidad de operaciones en las clases mas altas en la jerarquía.
-Tener demasiados objetos pequeños
-Dificultad para controlar la identidad de los mismos.
Ejemplo: bordes o scrolling de una ventana
Ampliar características a un coche - 5DECORATOR DIAGRAMA DE CLASES
- 6FACADE+Crea una fachada que simplifica la interface con una clase destino adaptándola a las operaciones que la clase cliente necesita para su uso concreto.
+Reduce la dependencia entre subsistemas
+Ideal para una arquitectura multinivel
La desventaja es que creamos clases con una funcionalidad ya existente.
Ejemplo: Pago web através de Facade que conecta con diferente medios de pago - 7FACADE DIAGRAMA DE CLASES
- 8FLYWEIGHT muchos objetos pequeñosFLYWEIGHT
+Para eliminar o reducir la redundancia cuando tenemos gran cantidad de objetos de tamaño pequeño con información idéntica
+Aporta equilibrio entre flexibilidad y rendimiento (uso de recursos).
Permite compartir:
+Objetos ligeros para hacer un programa más liviano.
+Estados intrínsecos de los objetos que no dependen del contexto.
-Aumento de complejidad de los objetos.
-Incremento del nº de clases del sistema
Ejemplo: es muy utilizado en videojuegos, ya que nos permite que elementos con muchas características en común, como pueden ser los árboles del escenario, puedan ser reproducidos sin despilfarrar la memoria que gastarían haciendo una instancia por cada uno. - 9FLYWEIGHT DIAGRAMA DE CLASES
- 10PROXYPROXY
+Objeto intermediario para controlar el acceso otro.
+Misma interfaz y referencia que el objeto de destino.
+Ideal para permitir el acceso distribuido, controlado e inteligente.
Se puede agregar un "wrapper" para agregar funcionalidad al objeto de interés sin cambiar el código del objeto.
-Introduce un nivel mas de indirección.
Ejemplo:abrimos un documento que contiene una imagen, la cual se cargará y mostrará cuando el usuario haga scroll. - 11PROXY DIAGRAMA DE CLASES
- 12PATRONES DE COMPORTAMIENTO BASADO EN OBJETOS(COMPOSICIÓN) Este tipo patrones ayudan a resolver problemas de interacción entre clases y objetos.*TEMPLATE+CO-ME-ME-OB-ST-ST
*Template es basado en clases - 13TEMPLATE+En una clase abstracta se define la parte común del algoritmo y en las subclases se definen aspectos puntuales.
+Reaprovechamiento código.
-Puede dar lugar a inexactitudes si no están todos los métodos claramente diferenciados
Ejemplo:
Una empresa que posee socios, clientes, empleados, etc. Cuando se les solicite que se identifiquen, cada uno lo realizará de distinta manera: quizás un empleado tiene un legajo, pero un cliente tiene un numero de cliente, etc. - 14TEMPLATE DIAGRAMA DE CLASES
- 15COMMAND encapsula mensajes+Encapsula un mensaje como un objeto pudiendo parametrizar las peticiones de los cliented y estsblecer una cola.
+Así podemos parametrizar clientes
+Podemos soportar operaciones con posibilidad de deshacer.
-Gran numero de clases y objetos en juego, dificil controla el desarrollo.
Ejemplo
Supongamos un editor de texto, una clase Document con las operaciones básicas que se hacen sobre un documento abrir, cerrar, cortar, copiar y pegar. Y otra clase Menu que tendrá unas clases que implementen esas operaciones de abrir, cerrar… pero que realmente no sabrán que acción hará. - 16COMMAND DIAGRAMA DE CLASES
- 17MEDIATOR (colega) encapsula interacción+Objeto que encapsula la interacción de un conjunto de objetos.
+Aporta bajo acoplamiento(objetos ya no tienen que referenciarse unos a otros)-
-Objeto difícil de mantener.
Ejemplo, ventana que contiene un botón que se desactiva cuando un cuadro de texto está vacío. - 18MEDIATOR DIAGRAMA DE CLASES.
- 19MEMENTO+Dota a nuestro diseño de una característica similar al “undo” o “Rollback”.
+Permite restaurar el estado de un objeto a un estado anterior sin romper la encapsulación (no accedemos a sus atributos), para lo cual previamente dicho estado ha de haber sido guardado.
+Debemos controlar la cantidad y tamaño de los objetos guardados. - 20MEMENTO DIAGRAMA DE CLASES
- 21OBSERVER réplica cambios+Cuando queremos que el cambio de un objeto requiera cambios en otros y no sabemos cuales son.
-No garantiza la llegada de los mensajes
Ejemplo: una paleta de colores que se usa por varios a la vez y todos han de ver los cambios que esta sufriendo - 22OBSERVER DIAGRAMA DE CLASES
- 23STATE+Permite a un objeto alterar su comportamiento dependiendo de su estado interno.
+Mejor mantenimiento posterior.
+Fácil ampliar de estados
-Se incrementa el número de subclases.
- - -
Ejemplo se toma una clase TCPConnection que representa una conexión de red, un objeto de esta clase tendrá diferentes respuestas según su estado (Listening, Closed o Established). - 24STATE DIAGRAMA DE CLASES
- 25STRATEGY+Bueno para implementar comportamientos en clases hijas a través de una clase común.
El comportamiento concreto se ejecuta en tiempo de ejecución y en función de algún parámetro.
-Menor eficiencia. Aumenta el número de objetos creados.
Ejemplo: en una biblioteca emplear diferente algoritmo de búsqueda dependiendo de parámetros. - 26STRATEGY DIAGRAMA DE CLASES
Information
- Description
- Modelado del Software Flashcards on PATRONES, created by Diego Martinez on 05/06/2019.
- Created by
- Diego Martinez
- Views
- 19
- Rating