Skip to content

Repositorio con los principales patrones de diseño en software: Creacionales, Estructurales y de Comportamiento. Incluye casos de uso y ejemplos en JavaScript, TypeScript, PHP y Python.

Notifications You must be signed in to change notification settings

Kembec/patrones-de-diseno

Repository files navigation

Patrones de Diseño

Patrones de Diseño

Patrones Creacionales

Estos patrones se enfocan en el proceso de creación de objetos, proporcionando mecanismos para crear objetos de manera que se adecuen a la situación dada. Ayudan a controlar la creación de instancias y simplifican el proceso de creación de objetos complejos.

  1. Singleton: Garantiza que una clase solo tenga una instancia y proporciona un punto de acceso global a ella. [Casos de uso | Ejemplos]
  2. Factory Method: Define una interfaz para crear un objeto, pero permite a las subclases decidir qué clase instanciar. [Casos de uso | Ejemplos]
  3. Abstract Factory: Proporciona una interfaz para crear familias de objetos relacionados o dependientes sin especificar sus clases concretas. [Casos de uso | Ejemplos]
  4. Builder: Separa la construcción de un objeto complejo de su representación, permitiendo construir diferentes tipos y representaciones. [Casos de uso | Ejemplos]
  5. Prototype: Permite crear nuevos objetos clonando una instancia existente. [Casos de uso | Ejemplos]

Patrones Estructurales

Estos patrones se centran en la composición de clases y objetos, ayudando a asegurar que cuando se combinen, las estructuras resultantes sean flexibles y eficientes. Facilitan el diseño de relaciones entre entidades para formar estructuras más grandes y manejables.

  1. Adapter: Permite que interfaces incompatibles trabajen juntas, convirtiendo la interfaz de una clase en otra esperada por los clientes. [Casos de uso | Ejemplos]
  2. Bridge: Desacopla una abstracción de su implementación, permitiendo que ambas varíen independientemente. [Casos de uso | Ejemplos]
  3. Composite: Permite tratar objetos individuales y composiciones de objetos de manera uniforme. [Casos de uso | Ejemplos]
  4. Decorator: Añade responsabilidades adicionales a un objeto de manera dinámica. [Casos de uso | Ejemplos]
  5. Facade: Proporciona una interfaz simplificada a un conjunto complejo de interfaces en un subsistema. [Casos de uso | Ejemplos]
  6. Flyweight: Reduce la cantidad de objetos creados para disminuir el uso de memoria y mejorar el rendimiento. [Casos de uso | Ejemplos]
  7. Proxy: Proporciona un sustituto o marcador de posición para otro objeto para controlar el acceso a él. [Casos de uso | Ejemplos]

Patrones de Comportamiento

Estos patrones se enfocan en la comunicación entre objetos y la asignación de responsabilidades. Mejoran la flexibilidad en la comunicación y la asignación de tareas entre objetos, definiendo cómo interactúan y cómo se distribuyen las responsabilidades.

  1. Chain of Responsibility: Permite pasar solicitudes a lo largo de una cadena de manejadores, donde cada manejador decide si procesar la solicitud o pasarla al siguiente manejador. [Casos de uso | Ejemplos]
  2. Command: Encapsula una solicitud como un objeto, permitiendo parametrizar a los clientes con diferentes solicitudes, colas o registros de solicitudes. [Casos de uso | Ejemplos]
  3. Interpreter: Define una representación para la gramática de un lenguaje y un intérprete que usa esa representación para interpretar frases del lenguaje. [Casos de uso | Ejemplos]
  4. Iterator: Proporciona una forma de acceder secuencialmente a los elementos de un objeto agregado sin exponer su representación subyacente. [Casos de uso | Ejemplos]
  5. Mediator: Define un objeto que encapsula cómo interactúan un conjunto de objetos, promoviendo el acoplamiento débil entre ellos. [Casos de uso | Ejemplos]
  6. Memento: Permite capturar y externalizar el estado interno de un objeto sin violar la encapsulación, para que el objeto pueda ser restaurado a este estado más tarde. [Casos de uso | Ejemplos]
  7. Observer: Define una dependencia de uno a muchos entre objetos, de modo que cuando uno cambia de estado, todos sus dependientes son notificados y actualizados automáticamente. [Casos de uso | Ejemplos]
  8. State: Permite a un objeto alterar su comportamiento cuando cambia su estado interno. [Casos de uso | Ejemplos]
  9. Strategy: Define una familia de algoritmos, encapsula cada uno, y los hace intercambiables. [Casos de uso | Ejemplos]
  10. Template Method: Define el esqueleto de un algoritmo en una operación, diferiendo algunos pasos a las subclases. [Casos de uso | Ejemplos]
  11. Visitor: Permite definir nuevas operaciones sin cambiar las clases de los elementos sobre los cuales opera. [Casos de uso | Ejemplos]

Buy Me A Coffee

About

Repositorio con los principales patrones de diseño en software: Creacionales, Estructurales y de Comportamiento. Incluye casos de uso y ejemplos en JavaScript, TypeScript, PHP y Python.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published