工廠方法**於簡單工廠模式,繼承簡單工廠模式的優點同時又彌補了簡單工廠模式的缺點,工廠方法模式將具體產品的建立過程延遲到了抽象工廠的子類中即就是具體工廠類中,新增新的產品的時候只需要建立乙個新的具體工廠類就可以完美的解決,更好的符合了開閉原則。
:#抽象產品類
@abstractmethod
defdooperation
(self)
:pass
class
concrentproducthandler
(abstractproducthandler)
:#具體產品類
defdooperation
(self)
:pass
class
abstarctfactoryhandler
(metaclass=abcmeta)
:#抽象工廠類
@abstractmethod
defgetproduct
(self)
:pass
class
concrentfactoryhandler
(abstarctfactoryhandler)
:#具體工廠類
defgetproduct
(self)
:return concrentproducthandler(
)class
clienthandler
:#客戶端介面
defrunner
(self)
: counter = concrentfactoryhandler(
).getproduct(
) counter.dooperation(
)
設計模式C 實現 工廠方法模式
工廠方法模式定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。creator是乙個類,它實現了全部操縱產品的方法,但不實現工廠方法。creator的全部子類都必須實現工廠方法 factorymethod 以實際製造出產品。全部的產品必須實現product基類...
設計模式 工廠方法模式
一 工廠方法 factory method 模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到工廠子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角...
設計模式 工廠方法模式
1 factorymethod.h ifndef factorymethod h define factorymethod h include include using namespace std class osproduct 產品,product,產品的抽象類 class windowspro...