Abstract Factory

Propósito

Según el libro "Patrones de Diseño" [29] el patrón Abstract Factory "proporciona una interfaz para crear familias de objetos relacionados o que dependen entre sí, sin especificar sus clases concretas".

También conocido como

Kit

Estructura

Participantes

  • FabricaAbstracta:

    • declara una interfaz para operaciones que crean variables producto abstractas.

  • FabricaConcreta:

    • implementa las operaciones para crear variables producto concretos.

  • ProductoAbstracto:

    • declara una interfaz para un tipo de variable producto.

  • ProductoConcreto:

    • define una variable producto para que sea creado por la fábrica correspondiente.

    • implementa la interfaz ProductoAbstracto.

  • Cliente:

    • solo usa interfaces declaradas por los tipos de datos FabricaAbstracta y ProductoAbstracto.

Implementación

  • No se observan impedimentos y/o modificaciones de la estructura original del patrón para su implementación en Go.

  • La FabricaAbstracta y ProductoAbstracto se definen como interfaces por simplificación.

Código de ejemplo

En este ejemplo queremos comprar distintos tipos de puertas de madera (madera o metal). Al realizar el pedido el local de venta debe encargar cada puerta a distintos fabricantes, ya que quien realiza la puerta de madera no la hace de metal y viceversa.

Implementación:

Se puede probar la implementación del patrón de la siguiente forma:

Código de ejemplo | Ejecutar código

Atención: Esta publicación se encuentra abandonada. Puede acceder a la versión vigente en https://leanpub.com/designpatternsingo

Última actualización

¿Te fue útil?