工廠模式


工廠模式屬於建立模式列表類別。它提供了建立物件的最佳方法。 在工廠模式中,建立物件時不會將邏輯公開給用戶端,並使用通用介面參照新建立的物件。

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