Design Patterns
Principios
Encapsula lo que varía
Programar contra la interface, no contra la implementación
Preferir la composición a la herencia
Procurar diseños con bajo acoplamiento entre objetos que interactuan
Abierto para extensión, cerrado para modificación
Depende de abstracciones, no de clases concretas
Principio del menor conocimiento
Solo háblale a tus amigos
Principio de Hollywood
No nos llames, nosotros te llamamos
Una clase debe tener solo una razón para cambiar
Creational patterns
Abstract Factory
Fábrica abstracta
Construye familias de varios objetos
Transparente el tipo de familia concreta que se esté usando
Builder
Constructor virtual
Abstrae el proceso de creación de un objeto complejo
Centralizando dicho proceso en un único punto.
Factory Method
Método de fabricación
Centraliza en una clase constructora la creación de objetos de un subtipo de un tipo determinado
Oculta al usuario la casuística para elegir el subtipo que crear.
Prototype
Prototipo
Crea nuevos objetos clonándolos de una instancia ya existente.
Singleton
Instancia única
Garantiza la existencia de una única instancia para una clase
Mecanismo de acceso global a dicha instancia.
Structural patterns
Adapter
Adaptador
Adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podría utilizarla.
Bridge
Puente
Desacopla una abstracción de su implementación.
Composite
Objeto compuesto
Permite tratar objetos compuestos como si de uno simple se tratase.
Decorator
Envoltorio
Añade funcionalidad a una clase dinámicamente.
Facade
Fachada
Provee de una interfaz unificada simple para acceder a una interfaz o grupo de interfaces de un subsistema.
Flyweight
Peso ligero
Reduce la redundancia cuando gran cantidad de objetos poseen idéntica información.
Proxy
Mantiene un representante de un objeto.
Behavioral patterns
Chain of Responsibility
Cadena de responsabilidad
Permite establecer la línea que deben llevar los mensajes para que los objetos realicen la tarea indicada.
Command
Orden
Encapsula una operación en un objeto, permitiendo ejecutar dicha operación sin necesidad de conocer el contenido de la misma.
Interpreter
Intérprete
Dado un lenguaje, define una gramática para dicho lenguaje, así como las herramientas necesarias para interpretarlo.
Iterator
Iterador
Permite realizar recorridos sobre objetos compuestos independientemente de la implementación de estos.
Mediator
Mediador
Define un objeto que coordine la comunicación entre objetos de distintas clases, pero que funcionan como un conjunto.
Memento
Recuerdo
Permite volver a estados anteriores del sistema.
Observer
Observador
Define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambie de estado se notifique y actualicen automáticamente todos los objetos que dependen de él.
State
Estado
Permite que un objeto modifique su comportamiento cada vez que cambie su estado interno.
Strategy
Estrategia
Permite disponer de varios métodos para resolver un problema y elegir cuál utilizar en tiempo de ejecución.
Template Method
Método plantilla
Define en una operación el esqueleto de un algoritmo, delegando en las subclases algunos de sus pasos, esto permite que las subclases redefinan ciertos pasos de un algoritmo sin cambiar su estructura.
Visitor
Visitante
Permite definir nuevas operaciones sobre una jerarquía de clases sin modificar las clases sobre las que opera.
Referencias
Freeman E, Head First Design Patterns. O'Reilly 2004
Acerca de
Topic
Topic
Design Patterns
Added: 2011-06-09 00:30:13
From: (Joined 2009-12-01 22:08:05)
15 views |0 downloads
Design Patterns