Patrones de diseño
Patrones de diseño creacional
Singleton: asegúrese de que solo se crea una instancia de una clase y proporcione un punto de acceso global al objeto.
Factory (versión simplificada del método Factory): crea objetos sin exponer la lógica de creación de instancias al cliente y hace referencia al objeto recién creado a través de una interfaz común.
Método de fábrica: define una interfaz para crear objetos, pero permite que las subclases decidan qué clase instanciar y se refiere al objeto recién creado a través de una interfaz común.
Abstract Factory: ofrece la interfaz para crear una familia de objetos relacionados, sin especificar explícitamente sus clases.
Generador: define una instancia para crear un objeto, pero permite que las subclases decidan qué clase instanciar y permite un control más preciso sobre el proceso de construcción.
Prototipo: especifique los tipos de objetos para crear utilizando una instancia prototípica y cree nuevos objetos copiando este prototipo.
Patrones de diseño conductual
Cadena de responsabilidad: evita vincular el remitente de una solicitud a su receptor, lo que le da a otros objetos la posibilidad de manejar la solicitud también. - Los objetos se convierten en partes de una cadena y la solicitud se envía de un objeto a otro a través de la cadena hasta que uno de los objetos lo maneje.
Comando: encapsula una solicitud en un objeto, permite la parametrización de clientes con diferentes solicitudes y permite guardar las solicitudes en una cola.
Intérprete: dado un idioma, defina una representación para su gramática junto con un intérprete que use la representación para interpretar oraciones en el idioma / Asigne un dominio a un idioma, el lenguaje a una gramática y la gramática a un diseño jerárquico orientado a objetos.
Iterador: proporciona una forma de acceder a los elementos de un objeto agregado de forma secuencial sin exponer su representación subyacente.
Mediador: defina un objeto que encapsule cómo interactúa un conjunto de objetos. El mediador promueve el acoplamiento suelto al evitar que los objetos se refieran entre sí explícitamente y le permite variar su interacción de forma independiente.
Observador: defina una dependencia de uno a muchos entre objetos para que cuando un objeto cambie de estado, todos sus dependientes sean notificados y actualizados automáticamente.
Estrategia: defina una familia de algoritmos, encapsule cada uno y hágalos intercambiables. La estrategia permite que el algoritmo varíe independientemente de los clientes que lo usan.
Método de plantilla: defina el esqueleto de un algoritmo en una operación, aplazando algunos pasos a subclases / El Método de plantilla permite a las subclases redefinir ciertos pasos de un algoritmo sin permitir que cambien la estructura del algoritmo.
Visitante: representa una operación que se realizará en los elementos de una estructura de objeto / Visitante le permite definir una nueva operación sin cambiar las clases de los elementos en los que opera.
Objeto nulo: proporcione un objeto como sustituto por la falta de un objeto de un tipo dado. / El patrón de objeto nulo proporciona un comportamiento inteligente para no hacer nada, ocultando los detalles de sus colaboradores.
Patrones de diseño estructural
Adaptador: convierta la interfaz de una clase en otra interfaz que los clientes esperan. / Adapter permite que las clases trabajen juntas, que de otro modo no podrían debido a interfaces incompatibles.
Puente - Componga objetos en estructuras de árbol para representar jerarquías de parte completa. / Composite permite a los clientes tratar objetos individuales y composiciones de objetos de manera uniforme.
Compuesto: componga objetos en estructuras de árbol para representar jerarquías de parte completa. / Composite permite a los clientes tratar objetos individuales y composiciones de objetos de manera uniforme.
Decorador: agregue responsabilidades adicionales dinámicamente a un objeto.
Flyweight: utilice el uso compartido para admitir una gran cantidad de objetos que tienen parte de su estado interno en común donde la otra parte del estado puede variar.
Memento: captura el estado interno de un objeto sin violar la encapsulación y, por lo tanto, proporciona un medio para restaurar el objeto al estado inicial cuando sea necesario.
Proxy: proporcione un "Marcador de posición" para que un objeto controle referencias a él.