Saltar al contenido principal
Abstract Factory

También conocido como

Kit

Propósito

Proveer de una interfaz para crear familias de objetos relacionados dependientes sin especificar su clase concreta.

Explicación

Ejemplo del mundo real

Para crear un reino necesitamos objetos con una temática común. El reino élfico necesita un rey elfo, un castillo élfico y un ejército élfico mientras que el reino orco necesita un rey orco, un castillo orco y un ejército orco. Hay una dependencia entre los objetos del reino.


iluwatarAlrededor de 3 minCreationalGang of Four
Builder

Propósito

Separar la construcción de un objeto complejo de su representación para que el mismo proceso de
construcción pueda crear diferentes representaciones.

Explicación

Ejemplo real

Imagina un generador de personajes para un juego de rol. La opción más fácil es dejar que el ordenador
cree el personaje por ti. Si quieres seleccionar manualmente los detalles del personaje como
profesión, sexo, color de pelo, etc. la generación del personaje se convierte en un proceso paso a paso que
se completa cuando todas las selecciones están listas.


iluwatarAlrededor de 2 minCreationalGang of Four
Context object

Nombre / Clasificación

Context Object

También conocido como

Context, Encapsulate Context

Propósito

Desacoplar los datos de las clases específicas del protocolo y almacenar los datos del ámbito en un objeto independiente
de la tecnología del protocolo subyacente.


iluwatarAlrededor de 2 minCreationalData access
Converter

Propósito

El propósito del patrón Conversor (Converter) es proporcionar una forma genérica y común de conversión bidireccional
entre tipos correspondientes, permitiendo una implementación limpia en la que los tipos no
tienen que conocerse entre sí. Además, el patrón Converter introduce la asignación bidireccional de colecciones
bidireccional, reduciendo al mínimo el código repetitivo.


iluwatarAlrededor de 1 minCreationalDecoupling
Dependency Injection

Propósito

La inyección de dependencias es un patrón de diseño de software en el que una o más dependencias (o servicios)
se inyectan, o se pasan por referencia, a un objeto dependiente (o cliente) y pasan a formar parte del estado del
cliente. El patrón separa la creación de las dependencias de un cliente de su propio comportamiento,
lo que permite que los diseños de los programas estén poco acoplados y sigan los principios de inversión de control y
responsabilidad única.


iluwatarAlrededor de 1 minCreationalDecoupling
Factory

También conocido como

  • Simple Factory
  • Static Factory Method

Propósito

Proporcionar un método estático encapsulado en una clase llamada fábrica (Factory), para ocultar la lógica de
implementación y
hacer que el código del cliente se centre en el uso en lugar de inicializar nuevos objetos.


iluwatarAlrededor de 2 minCreationalGang of Four
Factory Kit

También conocido como

Abstract-Factory

Propósito

Define una fábrica de contenido inmutable con interfaces de constructor y fábrica separadas.

Explicación

Ejemplo del mundo real

Imagina una fábrica de armas mágicas que puede crear cualquier tipo de arma que se desee. Cuando la fábrica se
desempaqueta, el maestro recita los tipos de armas necesarios para prepararla. Después de eso, cualquiera de esos
tipos
de armas pueden ser invocados en un instante.


iluwatarAlrededor de 2 minCreationalExtensibility
Factory Method

También conocido como

Virtual Constructor

Propósito

Definir una interfaz para crear un objeto, pero dejar que las subclases decidan qué clase instanciar. El método de
fábrica permite que una clase difiera la instanciación a las subclases.

Explicación

Ejemplo del mundo real


iluwatarAlrededor de 2 minCreationalExtensibilityGang of Four
MonoState

También conocido como

Borg

Propósito

Impone un comportamiento como compartir el mismo estado entre todas las instancias.

Diagrama de Clases

MonoState

Applicability

Utilice el patrón Monostate cuando

  • El mismo estado debe ser compartido por todas las instancias de una clase.
  • Típicamente, este patrón puede ser usado en cualquier lugar donde un Singleton pueda ser usado. Sin embargo, el uso de Singleton no es transparente, el uso de Monostate sí lo es.
  • Monostate tiene una gran ventaja sobre Singleton. Las subclases pueden decorar el estado compartido como deseen y, por lo tanto, pueden proporcionar dinámicamente un comportamiento diferente de la clase base.

iluwatarMenos de 1 minutoCreationalInstantiation
Multiton

También conocido como

Registry

Propósito

Asegúrese de que una clase solo tiene un número limitado de instancias y proporcione un punto de acceso global a las
mismas.

Explicación

Ejemplo del mundo real

Los Nazgûl, también llamados espectros del anillo o los Nueve Jinetes, son los sirvientes más terribles de Sauron. Por
definición, siempre hay nueve de ellos.


iluwatarAlrededor de 2 minCreationalInstantiation