Python 設計模式 - 工廠模式



工廠模式屬於建立型模式類別。它提供了一種建立物件的最優方式。在工廠模式中,物件是在不向客戶端公開邏輯的情況下建立的,並且使用通用介面來引用新建立的物件。

工廠模式在 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()

按鈕類有助於建立 HTML 標籤和關聯的 HTML 頁面。客戶端將無法訪問程式碼邏輯,輸出表示 HTML 頁面的建立。

輸出

Factory Pattern

解釋

Python 程式碼包含 HTML 標籤的邏輯,其中指定了值。終端使用者可以檢視 Python 程式碼建立的 HTML 檔案。

廣告