Patrones de diseño de Python - Fábrica

El patrón de fábrica se incluye en la categoría de lista de patrones de creación. Proporciona una de las mejores formas de crear un objeto. En el patrón de fábrica, los objetos se crean sin exponer la lógica al cliente y haciendo referencia al objeto recién creado utilizando una interfaz común.

Los patrones de fábrica se implementan en Python utilizando el método de fábrica. Cuando un usuario llama a un método tal que le pasamos una cadena y el valor de retorno como un nuevo objeto se implementa a través del método de fábrica. El tipo de objeto utilizado en el método de fábrica está determinado por la cadena que se pasa a través del método.

En el siguiente ejemplo, cada método incluye un objeto como parámetro, que se implementa a través del método de fábrica.

¿Cómo implementar un patrón de fábrica?

Veamos ahora cómo implementar un patrón de fábrica.

class Button(object):
   html = ""
   def get_html(self):
      return self.html

class Image(Button):
   html = "<img></img>"

class Input(Button):
   html = "<input></input>"

class Flash(Button):
   html = "<obj></obj>"

class ButtonFactory():
   def create_button(self, typ):
      targetclass = typ.capitalize()
      return globals()[targetclass]()

button_obj = ButtonFactory()
button = ['image', 'input', 'flash']
for b in button:
   print button_obj.create_button(b).get_html()

La clase de botón ayuda a crear las etiquetas html y la página html asociada. El cliente no tendrá acceso a la lógica del código y la salida representa la creación de una página html.

Salida

Explicación

El código de Python incluye la lógica de las etiquetas html, que especifica el valor. El usuario final puede echar un vistazo al archivo HTML creado por el código Python.