Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Patrones
Patrones
Desarrollo Web
01 agosto 2019
Ing. Wilson Aguin
Patrones de diseño
“Los patrones de diseño son la estructura de las soluciones a problemas comunes en el
desarrollo de software.”
En otras palabras, brindan una solución ya probada y documentada a problemas de
desarrollo de software que están sujetos a contextos similares. Debemos tener
presente los siguientes elementos de un patrón: su nombre, el problema (cuando
aplicar un patrón), la solución (descripción abstracta del problema) y las
consecuencias (costos y beneficios).
Algunos ejemplos:
Patrones Creacionales: Inicialización y configuración de objetos.
Patrones Estructurales: Separan la interfaz de la implementación. Se ocupan de
cómo las clases y objetos se agrupan, para formar estructuras más grandes.
Patrones de Comportamiento: Más que describir objetos o clases, describen la
comunicación entre ellos.
Patrones Creacionales
Fábrica Abstracta (Abstract Factory)
El problema a solucionar por este patrón es el de crear diferentes familias de
objetos, como por ejemplo la creación de interfaces gráficas de distintos tipos
(ventana, menú, botón, etc.).
Método de Fabricación (Factory Method)
Parte del principio de que las subclases determinan la clase a implementar.
Prototipado (Prototype)
Se basa en la clonación de ejemplares copiándolos de un prototipo.
Singleton
Restringe la instanciación de una clase o valor de un tipo a un solo objeto.
MVC (Model View Controler)
Este patrón plantea la separación del problema en tres capas: la capa model,
que representa la realidad; la capa controler, que conoce los métodos y
atributos del modelo, recibe y realiza lo que el usuario quiere hacer; y la capa
vista, que muestra un aspecto del modelo y es utilizada por la capa anterior
para interaccionar con el usuario.
Patrones Estructurales
Adaptador (Adapter): Convierte una interfaz en otra.
Puente (Bridge): Desacopla una abstracción de su implementación permitiendo
modificarlas independientemente.
Objeto Compuesto (Composite): Utilizado para construir objetos complejos a
partir de otros más simples, utilizando para ello la composición recursiva y una
estructura de árbol.
Envoltorio (Decorator): Permite añadir dinámicamente funcionalidad a una
clase existente, evitando heredar sucesivas clases para incorporar la nueva
funcionalidad.
Fachada (Facade): Permite simplificar la interfaz para un subsistema.
Peso Ligero (Flyweight): Elimina la redundancia o la reduce cuando tenemos
gran cantidad de objetos con información idéntica.
Apoderado (Proxy): Un objeto se aproxima a otro.
Patrones de Comportamiento
Cadena de responsabilidad (Chain of responsibility): La base es permitir que
más de un objeto tenga la posibilidad de atender una petición.
Orden (Command): Encapsula una petición como un objeto dando la
posibilidad de “deshacer” la petición.
Intérprete (Interpreter): Intérprete de lenguaje para una gramática simple y
sencilla.
Iterador (Iterator): Define una interfaz que declara los métodos necesarios
para acceder secuencialmente a una colección de objetos sin exponer su
estructura interna.
Mediador (Mediator): Coordina las relaciones entre sus asociados. Permite la
interacción de varios objetos, sin generar acoples fuertes en esas relaciones.
Recuerdo (Memento): Almacena el estado de un objeto y lo restaura
posteriormente.
Observador (Observer): Notificaciones de cambios de estado de un objeto.
Estado (Server): Se utiliza cuando el comportamiento de un objeto cambia
dependiendo del estado del mismo.
Estrategia (Strategy): Utilizado para manejar la selección de un algoritmo.
Método plantilla (Template Method): Algoritmo con varios pasos suministrados
por una clase derivada.
Visitante (Visitor): Operaciones aplicadas a elementos de una estructura de
objetos heterogénea.