鍍金池/ 教程/ Python/ 工廠模式
反模式
隊列
適配器設計模式
享元設計模式
Python設計模式
工廠模式
模板設計模式
構建器(Builder)設計模式
Python設計模式概要
命令設計模式
Python設計模式簡介
觀察者設計模式
代理設計模式
異常處理
責任鏈設計模式
字典實現(xiàn)
抽象工廠設計模式
Python并發(fā)(多線程)
策略設計模式
門面(Facade)設計模式
原型設計模式
迭代器設計模式
集合
單例模式
列表數(shù)據(jù)結構
狀態(tài)設計模式
模型視圖控制器(MVC)模式
裝飾器設計模式
面向對象概念的實現(xiàn)
面向對象設計模式
字符串和序列化

工廠模式

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

工廠模式使用工廠方法在Python中實現(xiàn)。 當用戶調用一個方法時,傳入一個字符串,并通過工廠方法實現(xiàn)創(chuàng)建一個新對象,并將此對象作為返回值。 工廠方法中使用的對象類型由通過方法傳遞的字符串確定。

在下面的例子中,每個方法都包含對象作為參數(shù),這是通過工廠方法實現(xiàn)的。

如何實施工廠模式?

現(xiàn)在讓我們看看如何實現(xiàn)工廠模式。參考以下代碼 -

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類有助于創(chuàng)建html標簽和關聯(lián)的html頁面。 客戶端將無法訪問代碼的邏輯,只輸出表示創(chuàng)建html頁面。

執(zhí)行上面示例代碼,得到以下結果 -

說明:python代碼包含html標簽的邏輯,這是指定的值。 最終用戶可以查看由Python代碼創(chuàng)建的HTML文件。


上一篇:抽象工廠設計模式下一篇:隊列