Los patrones de diseño son soluciones habituales a problemas que ocurren con frecuencia en el diseño de software. Son como planos prefabricados que se pueden personalizar para resolver un problema de diseño recurrente en tu código.
Información completa en: https://refactoring.guru
Singleton es un patrón de diseño creacional que nos permite asegurarnos de que una clase tenga una única instancia, a la vez que proporciona un punto de acceso global a dicha instancia.
-
Más info: Patrón Singleton
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Builder es un patrón de diseño creacional que nos permite construir objetos complejos paso a paso. El patrón nos permite producir distintos tipos y representaciones de un objeto empleando el mismo código de construcción.
-
Más info: Patrón Builder
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Factory Method es un patrón de diseño creacional que proporciona una interfaz para crear objetos en una superclase, mientras permite a las subclases alterar el tipo de objetos que se crearán.
-
Más info: Patrón Factory Method
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Prototype es un patrón de diseño creacional que nos permite copiar objetos existentes sin que el código dependa de sus clases.
-
Más info: Patrón Prototype
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Adapter es un patrón de diseño estructural que permite la colaboración entre objetos con interfaces incompatibles.
-
Más info: Patrón Adapter
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Bridge es un patrón de diseño estructural que te permite dividir una clase grande, o un grupo de clases estrechamente relacionadas, en dos jerarquías separadas (abstracción e implementación) que pueden desarrollarse independientemente la una de la otra.
-
Más info: Patrón Bridge
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Composite es un patrón de diseño estructural que te permite componer objetos en estructuras de árbol y trabajar con esas estructuras como si fueran objetos individuales.
-
Más info: Patrón Composite
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Decorator es un patrón de diseño estructural que te permite añadir funcionalidades a objetos colocando estos objetos dentro de objetos encapsuladores especiales que contienen estas funcionalidades.
-
Más info: Patrón Decorator
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Facade es un patrón de diseño estructural que proporciona una interfaz simplificada a una biblioteca, un framework o cualquier otro grupo complejo de clases.
-
Más info: Patrón Facade
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Flyweight es un patrón de diseño estructural que te permite mantener más objetos dentro de la cantidad disponible de RAM compartiendo las partes comunes del estado entre varios objetos en lugar de mantener toda la información en cada objeto.
-
Más info: Patrón Flyweight
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Proxy es un patrón de diseño estructural que te permite proporcionar un sustituto o marcador de posición para otro objeto. Un proxy controla el acceso al objeto original, permitiéndote hacer algo antes o después de que la solicitud llegue al objeto original.
-
Más info: Patrón Proxy
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Chain of Responsibility es un patrón de diseño de comportamiento que te permite pasar solicitudes a lo largo de una cadena de manejadores. Al recibir una solicitud, cada manejador decide si la procesa o si la pasa al siguiente manejador de la cadena.
-
Más info: Patrón Chain of Responsibility
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Command es un patrón de diseño de comportamiento que convierte una solicitud en un objeto independiente que contiene toda la información sobre la solicitud. Esta transformación te permite parametrizar los métodos con diferentes solicitudes, retrasar o poner en cola la ejecución de una solicitud y soportar operaciones que no se pueden realizar.
-
Más info: Patrón Command
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Iterator es un patrón de diseño de comportamiento que te permite recorrer elementos de una colección sin exponer su representación subyacente (lista, pila, árbol, etc.).
-
Más info: Patrón Iterator
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Mediator es un patrón de diseño de comportamiento que te permite reducir las dependencias caóticas entre objetos. El patrón restringe las comunicaciones directas entre los objetos, forzándolos a colaborar únicamente a través de un objeto mediador.
-
Más info: Patrón Mediator
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Memento es un patrón de diseño de comportamiento que te permite guardar y restaurar el estado previo de un objeto sin revelar los detalles de su implementación.
-
Más info: Patrón Memento
-
Ejemplo simple con código Kotlin
-
Esquema UML:
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Observer es un patrón de diseño de comportamiento que te permite definir un mecanismo de suscripción para notificar a varios objetos sobre cualquier evento que le suceda al objeto que están observando.
-
Más info: Patrón Observer
-
Ejemplo simple con código Kotlin
-
Esquema UML:
State es un patrón de diseño de comportamiento que permite a un objeto alterar su comportamiento cuando su estado interno cambia. Parece como si el objeto cambiara su clase.
-
Más info: Patrón State
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Strategy es un patrón de diseño de comportamiento que te permite definir una familia de algoritmos, colocar cada uno de ellos en una clase separada y hacer sus objetos intercambiables.
-
Más info: Patrón Strategy
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Template Method es un patrón de diseño de comportamiento que define el esqueleto de un algoritmo en la superclase pero permite que las subclases sobrescriban pasos del algoritmo sin cambiar su estructura.
-
Más info: Patrón Template Method
-
Ejemplo simple con código Kotlin
-
Esquema UML:
Visitor es un patrón de diseño de comportamiento que te permite separar algoritmos de los objetos sobre los que operan.
-
Más info: Patrón Visitor
-
Ejemplo simple con código Kotlin
-
Esquema UML:





















