Categories: All - patrones - instancia - controlador - modelo

by leidy s 3 years ago

812

PATRONES DE DISEÑO DE SOFTWARE

Los patrones creacionales y de arquitectura de software son fundamentales para el desarrollo de aplicaciones robustas y escalables. Entre los patrones creacionales más destacados encontramos el Builder, que facilita la construcción de objetos complejos mediante un mismo código, y el Abstract Factory, que permite la creación de familias de objetos relacionados sin necesidad de especificar sus clases concretas.

PATRONES DE DISEÑO DE SOFTWARE

Patrones más importantes

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.

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.

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.
Estructura
El notificador notifica a los suscriptores el método de notificación específico de sus objetos
Un mecanismo de suscripción permite a los objetos suscribirse a notificaciones de eventos

PATRÓN ARQUITECTURA DE SOFTWARE

Patrones creacionales

Singlenton

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

Prototype

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

Builder

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

Abstract Factory

Produce familias de objetos relacionados sin especificar sus clases concretas

Factory Method

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

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

https://platzi.com/tutoriales/1248-pro-arquitectura/5466-que-es-el-patron-mvc/

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.

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.

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)

Patrones de Comportamiento

Visitor

Permite separar algoritmos de los objetos sobre los que operan

Template Method

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

Strategy

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

State

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

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

Memento

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

Mediator

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

Iterator

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

Command

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

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

Patrones Estructurales

Proxy

Permite proporcionar un sustituto de posición para otro objeto

Flyweight

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

Facade

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

Decorator

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

Composite

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

Bridge

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

Adapter

Permite la colaboración entre objetos con interfaces incompatibles

PATRONES DE DISEÑO DE SOFTWARE

Fuentes:

https://refactoring.guru/es/design-patterns/catalog

https://profile.es/blog/patrones-de-diseno-de-software/

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