建造者模式:將一複雜的構建過程和它的表現分離出來,使同樣的建造過程可以獲取不同的表現。能夠更加精確的控制複雜物件的建立過程,讓使用者可以使用相同的建立過程建立不同的產品。
from abc import abcmeta,abstractmethod
class
toy(metaclass=abcmeta)
:def
__init__
(self,name)
: self._name = name
self.__components=
defgetname
(self)
:return self.__name
defaddcomonent
(self,component,count=
1,unit=
"個")
:[component,count,unit]
)print
("%s增加了%d%s%s"
%(self._name,count,unit,component)
) @abstractmethod
defshow
(self)
:pass
class
cartoy
(toy)
:def
__init__
(self,name)
:super()
.__init__(name)
defshow
(self)
:print
("我是%s"
%(self._name)
)class
housetoy
(toy)
:def
__init__
(self,name)
:super()
.__init__(name)
defshow
(self)
:print
("我是%s"
%(self._name)
)class
toybuilder
:def
buildingcar
(self)
: car = cartoy(
"大卡車"
) car.addcomonent(
"輪子",4
) car.addcomonent(
"車身",1
)return car
defbuilderhouse
(self)
: house = housetoy(
"l樓房"
) house.addcomonent(
"客廳",1
) house.addcomonent(
"臥室",3
)return house
deftest()
: builder = toybuilder(
) car = builder.buildingcar(
) car.show();
house = builder.builderhouse(
) house.show(
)test(
)
執行結果:
大卡車增加了4個輪子
大卡車增加了1個車身
我是大卡車
l樓房增加了1個客廳
l樓房增加了3個臥室
我是l樓房
aaa Python設計模式 建造者模式
需求,畫人物,要求畫乙個人的頭,左手,右手,左腳,右腳和身體,畫乙個瘦子,乙個胖子 不使用設計模式 encoding utf 8 author kevinlu1010 qq.com if name name print 畫左手 print 畫右手 print 畫左腳 print 畫右腳 print ...
python設計模式 建造者模式
一 什麼是建造者模式我們想要建立乙個由多個部分構成的物件,而且它的構成需要一步接一步地完成。只有當各個部分都建立好,這個物件才算是完整的。這正是建造者設計模式。二 工廠模式和建造者模式的區別 三 應用案例引入了乙個建造者computerbuilder 乙個指揮者hardwareengineer以及 ...
設計模式 建造者模式
在gof的23種設計模式中對builder pattern的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...