Modelli di design Python - Factory
Il modello di fabbrica rientra nella categoria dell'elenco dei modelli di creazione. Fornisce uno dei modi migliori per creare un oggetto. Nel modello di fabbrica, gli oggetti vengono creati senza esporre la logica al client e fare riferimento all'oggetto appena creato utilizzando un'interfaccia comune.
I modelli di fabbrica vengono implementati in Python utilizzando il metodo di fabbrica. Quando un utente chiama un metodo in modo tale da passare una stringa e il valore restituito come nuovo oggetto viene implementato tramite il metodo factory. Il tipo di oggetto utilizzato nel metodo factory è determinato dalla stringa che viene passata attraverso il metodo.
Nell'esempio seguente, ogni metodo include object come parametro, che viene implementato tramite il metodo factory.
Come implementare un modello di fabbrica?
Vediamo ora come implementare un pattern factory.
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 classe button aiuta a creare i tag html e la pagina html associata. Il client non avrà accesso alla logica del codice e l'output rappresenta la creazione della pagina html.
Produzione
Spiegazione
Il codice python include la logica dei tag html, il cui valore specificato. L'utente finale può dare un'occhiata al file HTML creato dal codice Python.