Python Design Patterns - Fábrica

O padrão de fábrica vem na categoria de lista de padrões de criação. Ele fornece uma das melhores maneiras de criar um objeto. No padrão de fábrica, os objetos são criados sem expor a lógica ao cliente e referindo-se ao objeto recém-criado usando uma interface comum.

Os padrões de fábrica são implementados em Python usando o método de fábrica. Quando um usuário chama um método, passamos uma string e o valor de retorno como um novo objeto é implementado por meio do método de fábrica. O tipo de objeto usado no método de fábrica é determinado por uma string que é passada pelo método.

No exemplo abaixo, todo método inclui objeto como parâmetro, que é implementado por meio do método de fábrica.

Como implementar um padrão de fábrica?

Vamos agora ver como implementar um padrão 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()

A classe do botão ajuda a criar as tags html e a página html associada. O cliente não terá acesso à lógica do código e a saída representa a criação da página html.

Resultado

Explicação

O código python inclui a lógica de tags html, cujo valor especificado. O usuário final pode dar uma olhada no arquivo HTML criado pelo código Python.