工廠模式屬於建立模式列表類別。它提供了建立物件的最佳方法。 在工廠模式中,建立物件時不會將邏輯公開給用戶端,並使用通用介面參照新建立的物件。
工廠模式使用工廠方法在Python中實現。 當使用者呼叫一個方法時,傳入一個字串,並通過工廠方法實現建立一個新物件,並將此物件作為返回值。 工廠方法中使用的物件型別由通過方法傳遞的字串確定。
在下面的例子中,每個方法都包含物件作為引數,這是通過工廠方法實現的。
現在讓我們看看如何實現工廠模式。參考以下程式碼 -
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()
Button
類有助於建立html標籤和關聯的html頁面。 用戶端將無法存取程式碼的邏輯,只輸出表示建立html頁面。
執行上面範例程式碼,得到以下結果 -
說明:python程式碼包含html標籤的邏輯,這是指定的值。 終端使用者可以檢視由Python程式碼建立的HTML檔案。