Python設計模式 建造者模式

2021-10-04 18:19:21 字數 1806 閱讀 1154

建造者模式:將一複雜的構建過程和它的表現分離出來,使同樣的建造過程可以獲取不同的表現。能夠更加精確的控制複雜物件的建立過程,讓使用者可以使用相同的建立過程建立不同的產品。

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的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...