Cidenet+Blog+Desarrollo limpio+Resúmen Patrones Creacionales

Resúmen Patrones Creacionales

En esta entrega se hará un resumen de lo definido en los textos anteriores acerca de los patrones creacionales y algunas consideraciones finales.

Los patrones de diseño creacionales establecen el objeto preciso de una clase dado un problema. Esto ocurre, generalmente, cuando se tienen diferentes instancias de diferentes clases. Estos patrones dan flexibilidad acerca de lo que se crea, quién lo crea, cómo se crea y cuándo.

A continuación, se describe una breve definición de cada patrón de diseño creacional:

  • Abstract Factory: crea una instancia de varias familias de clases.
  • Factory Method: crea una instancia de varias clases derivadas.
  • Builder: separa la construcción de un objeto de su representación.
  • Prototype: una instancia previamente inicializada se utiliza para ser clonada.
  • Singleton: una clase de la que sólo puede existir una instancia.

Algunas consideraciones y comparaciones entre estos patrones son:

  • A menudo, las clases del Abstract Factory se implementan con Factory Method, pero también pueden implementarse con Prototype.
  • Un Concrete Factory, es habitualmente un Singleton.
  • Abstract Factory es un patrón similar a Builder, ya que con este patrón también se pueden construir objetos complejos. La diferencia más significativa es que Builder se concentra en construir un objeto complejo paso a paso, mientras que Abstract Factory enfatiza en familias de objetos de un producto, bien sea simple o complejo. Builder retorna el producto en el paso final y en Abstract Factory el producto se retorna inmediatamente.
  • Los prototipos no requieren un creador de subclases. Estos a menudo requieren una operación que los inicialice en la clase del producto. Factory Method no requiere tal operación.
  • Prototype y Abstract Factory compiten de cierta forma, aunque también pueden usarse juntos. En Abstract Factory se podría guardar un conjunto de prototipos para clonar objetos.
  • Patrones como Abstract Factory, Builder y Prototype se pueden implementar usando el patrón Singleton.
  • Hay dos formas de parametrizar un sistema por medio de los tipos de objetos que en este se crean.
    • Una forma es por medio de subclases que crean objetos, como se hace en Factory Method. La desventaja de este acercamiento es que puede ser necesario crear nuevas clases solo para cambiar la clase de un producto.
    • La otra forma es parametrizar un sistema basado en la composición de los objetos:
      • En Abstract Factory se tiene un objeto Factory produciendo objetos de diversas clases.
      • En Builder se tiene un objeto Factory construyendo un producto complejo, de forma incremental, usando un protocolo complejo.
      • Prototype tiene un objeto Factory que construye un producto, por medio de la clonación de un prototipo.
  • Factory Method hace un diseño menos complicado. A menudo, este método se utiliza como la forma, por defecto, para crear objetos, pero no es necesario en casos donde la clase instanciada no cambia. Frecuentemente, se realiza una evolución a otros patrones creacionales cuando se requiere más flexibilidad.
  • Conocer cada uno de estos patrones otorga más opciones a la hora de decidirse por un patrón en lugar de otros.

Fuentes

  • https://sourcemaking.com/design_patterns/creational_patterns
  • https://www.gofpatterns.com/design-patterns/module2/threeCategories-ofDesign-patterns.php
  • Design Patterns : Elements of Reusable Object-Oriented Softwarepan>

Contáctanos

Déjanos tus datos

    Medellín - Colombia

  • Calle 47D #72-29
  • (+57) 4 3222567
  • comunicaciones@cidenet.com.co

    Estados Unidos

  • 1200 Colorado Blvd, Denver Colorado 80220
  • (+1) 7723619239
  • jceballos@cidenet.net
WhatsApp