Python設計模式:建造者模式
作者:由 克里斯同學 發表于 繪畫時間:2019-08-16
和工廠模式不一樣,工廠模式是直接返回一個產品(或工廠),輸入輸出,相當直接,建造者模式就要辛苦一點,
需要指揮者指揮建造者工作之後,才能獲得產品
,所以建造者模式需要
指揮者
和
建造者
兩個角色。
① 建造者
建造者顧名思義,就是搬磚幹活的,所以他
應該有各種幹活的能力
,這樣指揮者才好指揮他們幹活,下面是一個能建酒店的建造者。
class
HotelBuilder
:
@classmethod
def
get_material
(
cls
):
(
“正在搬運酒店建築材料。。。”
)
return
cls
@classmethod
def
building
(
cls
):
(
“正在修建酒店。。。”
)
return
cls
@classmethod
def
complete
(
cls
):
(
“修建酒店已完工”
)
return
“酒店”
② 指揮者
指揮者毫無疑問就是指揮人幹活的,雖然不用每事親力親為,但他
需要很清楚幹活的步驟
,這樣才能發揮他的領導才能。
class
Director
:
def
__init__
(
self
,
builder
):
self
。
builder
=
builder
def
direct
(
self
):
building
=
self
。
builder
。
get_material
()
。
building
()
。
complete
()
(
f
“
{building}
已建成”
)
return
building
③ 開始幹活
把酒店建造者給指揮者,然後指揮者開始指揮,最後得到產品。
hotel
=
Director
(
HotelBuilder
)
。
direct
()