"""
抽象工廠模式:
與簡單工廠模式的最主要區別是,簡單工廠模式在工廠類中包含了邏輯判斷,能夠根據客戶端的選擇條件來動態建立物件,解除了客戶端
對應用的依賴。但是,在新增新的邏輯時,需要修改工廠類,違反了開放-封閉原則。
抽象工廠模式建立了乙個抽象工廠,並由此建立了多個子工廠,乙個子工廠對應乙個型別的例項物件。需要擴充套件時,只需新增對應的子工廠
即可"""
from abc import abcmeta,abstractmethod
class
parentclass
(object):
__metaclass__ = abcmeta
def__init__
(self, a, b):
self.a = a
self.b = b
@abstractmethod
defoperation
(self):
pass
class
addop
(parentclass):
def__init__
(self, a, b):
super(addop, self).__init__(a, b)
defoperation
(self):
print(self.a + self.b)
class
jianop
(parentclass):
def__init__
(self, a, b):
super(jianop, self).__init__(a, b)
defoperation
(self):
print(self.a - self.b)
class
parentfactory
(object):
__metaclass__ = abcmeta
def__init__
(self):
pass
@abstractmethod
defcreate_operation
(self, a, b):
pass
class
addfactory
(parentfactory):
def__init__
(self):
super(addfactory, self).__init__()
defcreate_operation
(self, a, b):
return addop(a, b)
class
jianfactory
(parentfactory):
def__init__
(self):
super(jianfactory, self).__init__()
defcreate_operation
(self, a, b):
return jianop(a, b)
if __name__ == '__main__':
addfactory = addfactory()
add = addfactory.create_operation(5, 6)
add.operation()
jianfactory = jianfactory()
jian = jianfactory.create_operation(5, 6)
jian.operation()
python 抽象工廠模式
例子 生產一部手機,需要手機殼 cpu 作業系統三類物件進行組裝,其中每類物件有不同的種類,對每個具體工廠,分別生產一部手機所需要的三個物件 相比工廠方法模式,抽象工廠模式中的每個具體工廠都生產一套產品 給一套系統做過限制 mifactory huaweifactory 抽象工廠模式 from ab...
抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
抽象工廠模式 python版
抽象工廠模式 提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。優點 易於交換 產品系列 只要更改相應的工廠即可。缺點 建立產品的時候很繁瑣,需要增加和修改很多東西。優化1 為了避免客戶端有過多的邏輯判斷,可以封裝出乙個簡單工廠類來生成產品類。優化2 為了減少簡單工廠類裡面的邏輯判...