Patrones - Definición Flashcards
Builder
Creacional. Objetos.
Separa la construcción de un objeto complejo de su representación para que el mismo proceso de construcción pueda crear diferentes representaciones.
(Para clases especializadas en crear objetos muy complejos)
Abstract factory
Creacional. Clases.
Para construir familias de objetos relacionados o dependientes sin especificar su clase concreta. Permite trabajar con objetos de distintas familias de manera que las familias no se mezclen entre sí y haciendo transparente el tipo de familia que se esté usando.
Factory method
Creacional. Objetos.
Proporciona una interfaz para crear un objeto, pero deja a las subclases decidir qué clase instanciar para la creación del objeto.
Prototype
Creacional. Objetos.
Especifica el tipo de objetos a crear usando una instancia prototipo y crea nuevos objetos copiando este prototipo.
Singleton
Creacional. Objetos.
Asegura que una clase sólo tiene una instancia y proporciona acceso global a ella.
Ej. un objeto Configuración
Object Pool
Creacional. Objetos.
Obtiene objetos nuevos a través de colanción. Se utiliza para objetos muy complejos. Se especifica el tipo de objeto a crear y se utiliza una interfaz del prototipo para crear un nuevo objeto por clonación.
Herencia múltiple
Estructural. Clases.
Una clase hereda de otra y combina sus propiedades.
Class Adapter
Estructural. Clases.
Basado en una clase adaptador que hereda de la clase o clases a adaptar, cuyos métodos pueden ser sobreescritos. El adaptador deberá implementar la nueva interfaz que deseamos utilizar. La adaptaciópn se realiza llamando a los métodos del padre. No permite la adaptación de las subclases a la clase adaptada.
Object Adapter
Estructural. Objetos.
Convierte la interfaz de una clase en otra distinta que es la que esperan los clientes. Permite integrar clases con interfaces incompatibles.
Basado en una clase adaptadora que contiene una instancia de la clase o clases a adaptar. Para compatibilizar las clases, el adaptador hace llamadas a la instancia del objeto u objetos a daptar. Este adaptador funciona con la clase adaptada y todas sus subclases.
Bridge
Estructural. Objetos.
Desacopla una abstracción de su implementación, de manera que ambas puedan variar de forma independientemente.
Composite
Estructural. Objetos.
Combina o compone objetos en estructuras de árbol para representar jerarquías. Permite que los clientes tratar de la misma manera los objetos individuales y los compuestos.
Ej: Estructuras de objetos poco flexibles… Almacen => Estanterias => Baldas => Productos
Decorator
Estructural. Objetos.
Agrega responsabilidades adicionales a un objeto dinámicamente. Proporciona una alternativa flexible a la herencia para extender funcionalidades.
Facade
Estructural. Objetos.
Proporciona una interfaz unificada a un conjunto de interfaces en un subsistema. Define una interfaz de alto nivel que hace que el subsistema sea más fácil de usar.
Ej. Sería com una clase pública que proporciona acceso a las clases privadas correspondientes de las funcionalidades de cada subsistema.
Flyweight
Estructural. Objetos.
Usa el comportamiento para permitir un gran número de objetos pequeños de forma eficiente.
Proxy
Estructural. Objetos.
Proporciona un sustitutivo de otro objeto, para controlar el acceso a este.
Interpreter
Comportamiento. Clases.
Dado un lenguaje, define una representación de su gramática junto con un intérprete que usa dicha representación para analizar las sentencias del lenguaje.
Template Method
Comportamiento. Clases.
Define en una operación el esqueleto de un algoritmo, delegando en las subclases algunos pasos. Es decir, permite que las subclases redefinan ciertos pasos del algoritmo sin cambiar la estructura.
Chain of Responsability
Comportamiento. Objetos.
Evita el acoplamiento del emisor de una petición a su receptor dando a más de un objeto una oportunidad para manejar la petición. Encadena los objetos receptores y pasa la petición a lo largo de la cadena hasta que un objeto la maneja.
Command
Comportamiento. Objetos.
Encapsula una petición en un objeto, permitiendo parametrizar a los clientes con distintas peticiones. Lo logra transformando los métodos en clases.
Iterator
Comportamiento. Objetos.
Proporciona un modo de accede secuencialmente a los elementos de un objeto agregado (árboles, listas…) sin exponer su representación interna.
Mediator
Comportamiento. Objetos.
Define un objeto que encapsula cómo interactúan un conjunto de objetos. Consigue bajo acoplamiento al evitar que los objetos se refieran unos a otros explícitamente. Permite variar su interacción independientemente.
Memento
Comportamiento. Objetos.
Almacena el estado de un objeto (o del sistema completo) en un momento dado, de manera que se pueda restaurar de manera sencilla.
Observer
Comportamiento. Objetos.
Define una dependencia de uno a muchos entre objetos, de forma que cuando un objeto cambie de estado se notifican y actualizan todos los objetos que dependen de él automáticamente.
State
Comporamiento. Objetos. (De delegación)
Permite a un objeto alterar su comportamiento cuando cambia su estado interno. El objeto aparenta cambiar de clase.
Ej: Una factura puede pasar de una clase emitida a una clase pagada.