抽象工廠模式(python)

2021-07-25 20:08:34 字數 1776 閱讀 3129

"""

抽象工廠模式:

與簡單工廠模式的最主要區別是,簡單工廠模式在工廠類中包含了邏輯判斷,能夠根據客戶端的選擇條件來動態建立物件,解除了客戶端

對應用的依賴。但是,在新增新的邏輯時,需要修改工廠類,違反了開放-封閉原則。

抽象工廠模式建立了乙個抽象工廠,並由此建立了多個子工廠,乙個子工廠對應乙個型別的例項物件。需要擴充套件時,只需新增對應的子工廠

即可"""

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 為了減少簡單工廠類裡面的邏輯判...