Patrones de diseño Flashcards
Singleton
Limita a 1 las instancias que se puede crear de una clase determinada.
CREACIONAL
Factory Method
Proporciona una interfaz para crear objetos en una superclase, mientras permite a las subclases concretar el tipo de objetos que se crearán.
CREACIONAL
Abstract Factory
Permite producir familias de objetos relacionados sin especificar sus clases concretas.
CREACIONAL
Builder
Crea clases especializadas en crear cada parte de un objeto muy complejo (ej Facturas + Lineas+ Condiciones).
CREACIONAL
Prototype
Define el interface de clonación (metodo clone) que deberán implementar ciertas clases de negocio que quieran permitir clonar/duplicar uno de sus objeto para obtener otro idéntico.
CREACIONAL
Flyweight
Si creo p.ej. 30.000 instancias de un objeto, y de repente nos damos cuenta de que hay una determinada info que es la misma (común) en todas las instancias, la solución es sacarlo fuera, a una clase externa. Esa info común la vamos a poner toda en una clase única y una única instancia.
ESTRUCTURAL
Adapter
Una clase A que quiere usar los métodos de otra B pero no sabe o no le viene bien tal cual están definidos. El adapter será una clase intermedia que le ofrece ese método que le viene a A y realizará internamente las llamadas correspondientes a B.
ESTRUCTURAL
Facade
Proporciona para un subsistema (paquete con clases relacionadas) un punto único de acceso que ofrece servicios de más alto nivel que los que ofrece cada una de las clases de ese subsistema individualmente.
ESTRUCTURAL
Proxy
Sobre una clase dada, separa las responsabilidades de negocio en una clase y las otros responsabilidades en otra, de tal forma que las peticiones antes de llegar a la clase de negocio como tal, siempre pasan por la otra (ej. que podría servir para implementar funcionalidades de seguridad, rendimiento…)
ESTRUCTURAL
Composite
De una estructura de contenedores (ej. clases con relaciones de agregación entre ella) ofrece una solucion de contenedores flexible en la que poder crecer tanto en un numero de contenedores como en los tipos de cada uno de ellos-
ESTRUCTURAL
Decorator
Añade responsabilidades extra a un objeto/componente concreto de manera dinámica (en tiempo de ejecución) sin recurrir a la herencia. Lo hace por medio de envoltorios (unos objetos agregan o envuelven a otros y así hasta llegar al componente que será la pieza más interna de esa cebolla).
ESTRUCTURAL
Bridge
Extrae de un componente (abstracción) ciertos grupos de funcionalidades (implementaciones) y relacionarlas con este por composición. Con esto conseguimos que tanto la posible jerarquía de abstracciones como de implementaciones pueda crecer independientemente.
ESTRUCTURAL
Interpreter
Clases para crear un analizador sintáctico de un cierto lenguaje/expresion (introduce el concepto de terminal y no terminal) creando un AST (arbol de sintaxis abstracta).
COMPORTAMIENTO
Template Method
Consiste en definir una clase abstracta con el “esqueleto” de un proceso/algortimo. Algunas de las funciones definidas en esa superclase están preparadas para ser sobreescritas en las hijas y asi terminar de definir dicho proceso.
COMPORTAMIENTO
Chain of Responsability
Representa una serie de objetos enlazados/encadenados de forma que sobre una petición dada, cada uno tendrá un unico cometido funcional y le pasará el control al siguiente “eslabon” de esa cadena.
COMPORTAMIENTO