PATRONES DE DISEÑO DE SOFTWARE

r

Fuentes: https://refactoring.guru/es/design-patterns/cataloghttps://profile.es/blog/patrones-de-diseno-de-software/

a

Patrón: juego de herramientas que brindan soluciones a problemas en el diseño de software, ayuda a la comunicación con eficacia

Patrones Estructurales

Adapter

Adapter

Permite la colaboración entre objetos con interfaces incompatibles

Bridge

Bridge

Permite dividir una clase grande, en 2 jerarquías separadas (abstracción e implementación), que se desarrollan independientemente

Composite

Composite

Permite componer objetos en estructuras de árbol y trabajar con ellas como si fueran objetos individuales

Decorator

Decorator

Permite añadir funcionalidades a objetos, colocando estos objetos dentro de objetos encapsuladores especiales

Facade

Facade

Proporciona una interfaz simplificada a una biblioteca, un framework o cualquier grupo complejo de clases

Flyweight

Flyweight

Permite mantener más objetos dentro de la RAM, compartiendo entre varios objetos en lugar de toda la información en cada objeto

Proxy

Proxy

Permite proporcionar un sustituto de posición para otro objeto

Patrones de Comportamiento

Chain of Responsability

Chain of Responsability

Permite pasar solicitudes a lo largo de una cadena de manejadores, cada manejador decide si la procesa o si la para al siguiente

Command

Command

Convierte una solicitud en un objeto independiente que contiene toda la información sobre la solicitud

Iterator

Iterator

Permite recorrer elementos de una colección sin exponer su representación subyacente(lista, pila, árbol, etc.)

Mediator

Mediator

Permite reducir las dependencias caóticas entre objetos. Restringe las comunicaciones directas entre objetos, colaborando por medio de un objeto mediador

Memento

Memento

Permite guardar y restaurar el estado previo de un objeto sin revelar los detalles de su implementación

Observer

Observer

Permite definir un mecanismo de suscripción para notificar a varios objetos sobre cualquier evento que le suceda al objeto que están observando

State

State

Permite a un objeto alterar su comportamiento cuando su estado interno cambia, como si el ibjeto cambiara su clase

Strategy

Strategy

Permite definir una familia de algoritmos, colocar a cada uno de ellos en una clase separada y hacer sus objetos intercambiables

Template Method

Template Method

Define un esqueleto de un algoritmo en la superclase pero permite que las subclases sobrescriban pasas del algoritmo si cambiar su estructura

Visitor

Visitor

Permite separar algoritmos de los objetos sobre los que operan

Patrón MVC: Separa la lógica de negocios y la capa de representación entre sí.

Patrón MVC: Separa la lógica de negocios y la capa de representación entre sí.

c1
Modelo

Modelo

Contiene los datos de dominio, almacenan información del sistema que estamos desarrollando. Encontramos la lógica del negocio de la aplicación, es decir las reglas, acciones y restricciones que nos permiten gestionar las entidades del dominio. También es el encargado de gestionar el almacenamiento y recuperación de datos y entidades del dominio (DAL - Data Acces Layes y ORMs)

Vista

Vista

Es el UI de la aplicación. Presenta los datos del modelo al usuario, genera la interfaz de la aplicación, compone pantallas, páginas, entre otros. La vista es la representación del Modelo, contiene los elementos de interacción, adaptados a la tecnología del cliente.

Controlador

Controlador

Existe entre la vista y el modelo, escucha los eventos desencadenados por la vista y ejecuta. También transforma datos para hacer que la Vista y el Modelo se entiendan traduciendo la información desde la interfaz, a la vez tomará la información del Modelo y la adaptará a formatos o estructuras de datos.

Patrones creacionales

Factory Method

Factory Method

Objetos en superclase, las subclases alteran el tipo de objeto que se crean

Abstract Factory

Abstract Factory

Produce familias de objetos relacionados sin especificar sus clases concretas

Builder

Builder

Contruye objetos complejos. Permite producir distintos tipos y representaciones de un objeto empleando el mismo código de construcción

Prototype

Prototype

Permite copiar objetos existentes sin que el código dependa de sus clases

Singlenton

Singlenton

Asegura que una clase tenga una única instancia, proporciona un punto de acceso global de la instancia

PATRÓN ARQUITECTURA DE SOFTWARE

Patrones más importantes

Observer

Observer

Patrón de comportamiento que define un mecanismo de suscripción para notificar a varios objetos sobre un evento que le suceda al objeto que están obsrvando.

Un mecanismo de suscripción permite a los objetos suscribirse a notificaciones de eventos

Un mecanismo de suscripción permite a los objetos suscribirse a notificaciones de eventos

El notificador notifica a los suscriptores el método de notificación específico de sus objetos

El notificador notifica a los suscriptores el método de notificación específico de sus objetos

Estructura

Estructura

Singleton

Singleton

Patrón de diseño creacional, permite asegurar que una clase tenga una única instancia, a la vez que proporciona un punto de aceso global a dicha instancia.

Estructura

Estructura

La clase Singleton declara el método estático obtenerInstancia, que devuelve la misma instancia de su propia clase, la llamada al método obtenerInstancia debe ser la única manera de obtener el objeto de Singleton.