Tabla de contenidos
Fuentes de información
En este sitio web encontrarás más información sobre los patrones de diseño, sus características, ejemplos y cómo aplicarlos en el diseño de software.
Patrones de diseño
Los patrones de diseño son una herramienta que nos permite reutilizar soluciones a problemas comunes, de esta forma se evita tener que reinventar la rueda cada vez que se presenta un problema.
- Son una guía para el diseño de software, nos permiten diseñar software de forma más eficiente y con mayor calidad.
Categorías Principales de Patrones de Diseño
- Los patrones de diseño se agrupan en diferentes categorías según el propósito y el área de aplicación en el diseño de software, estas categorías proporcionan un marco conceptual que ayuda a entender cómo se utilizan los patrones y cuál es su función en el desarrollo de sistemas de software.
Categoría | Propósito | Características | Ejemplos |
---|---|---|---|
Creacionales | Crear objetos de manera flexible y reutilizable | Proporcionan mecanismos para la creación de objetos de forma dinámica, sin acoplar el código a las clases concretas. | Singleton, Factory Method, Abstract Factory, Builder, Prototype |
Estructurales | Se ocupan de la composición de clases y objetos para formar estructuras más grandes y complejas. | Se centran en cómo se organizan y relacionan las clases y objetos para lograr una mayor flexibilidad y reutilización del código. | Adapter, Composite, Proxy, Facade, Decorator, Data Access Object (DAO), Data Transfer Object (DTO). |
Comportamiento | Se centran en la comunicación y la asignación de responsabilidades entre objetos. | Estos patrones definen cómo los objetos interactúan entre sí y cómo distribuyen las tareas y responsabilidades en un sistema de software. | Strategy, Observer, Command, Mediator, Memento, State, Template Method, Visitor. |
Arquitectónicos | Se ocupan de la estructura general de un sistema de software. | Estos patrones definen la estructura general de un sistema de software y proporcionan un marco de trabajo para organizar y coordinar los componentes de un sistema. | Model-View-Controller (MVC), Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Layered Architecture, Microservices, Event-Driven Architecture, Hexagonal Architecture, Clean Architecture. |