工廠模式

工廠模式屬於創建模式列表類別。它提供了創建對象的最佳方法。 在工廠模式中,創建對象時不會將邏輯公開給客戶端,並使用通用接口引用新創建的對象。

工廠模式使用工廠方法在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文件。