(1)介紹
建造者模式(builder pattern),一種常用設計模式,屬於建立型模式。
使用多個簡單物件構建複雜物件。
(2)解決問題
由於需求變化,複雜物件經常面臨劇烈變化。
(3)使用場景
零件不變,但組合多變。
(4)核心
組裝順序很重要
原料:石頭,木材,茅草
石頭+石頭=地基
石頭+木材=牆壁
木材+茅草=屋頂
地基+牆壁+屋頂=房子
(5)**
(個人練習)
class rock()
:'''石頭類'
'' pass
class floorrock
(rock):''
'作為地基的石頭'
'' pass
class wallrock
(rock):''
'作為牆壁的石頭'
'' pass
class wood()
:'''木材類'
'' pass
class wallwood
(wood):''
'作為牆壁的木材'
'' pass
class roofwood
(wood):''
'作為屋頂的木材'
'' pass
class thatch()
:'''茅草類'
'' pass
class roofthatch
(thatch):''
'作為屋頂的茅草'
'' pass
class order()
:'''命令規則'
'' rock =
'' wood =
'' thatch =
'' def __init__
(self,orderbuilder)
: self.rock = orderbuilder.brock
self.wood = orderbuilder.bwood
self.thatch = orderbuilder.bthatch
def show
(self)
:if self.rock and self.wood and not self.thatch:
print
('牆壁鑄造成功!'
) elif self.wood and self.thatch and not self.rock:
print
('屋頂鑄造成功!'
) elif self.rock and not (self.thatch and self.wood)
:print
('地基鑄造成功!'
)class orderbuilder()
:'''執行命令'
'' brock = none
bwood = none
bthatch = none
def add
(self,xrock=brock,xwood=bwood,xthatch=bthatch):''
'新增方法'
'' self.brock = xrock
self.bwood = xwood
self.bthatch = xthatch
def build
(self):''
'建造方法'
''return
order
(self)
def main()
: order_builder =
orderbuilder()
order_builder.
add(xrock=
floorrock()
,xwood=
wood()
) order_builder.
build()
.show()
if __name__ ==
'__main__'
:main
()
二十三種設計模式之建造者模式四
建造者模式的思想.就是我需要乙個物件,我不用建立,我去找建築商,然後我告訴建築商我要的物件都有哪些屬性,建築商它也不建立物件,建築商去找乙個或一些能建立和賦值的工人來幹,由建築商負責指揮工人先怎麼樣,再怎麼樣,最後將物件給我 實體類package ink.yql.builder 需要被建立的類 pu...
二十三種設計模式之裝飾者模式
1 什麼是裝飾者模式 裝飾模式是在不使用繼承和不改變原類檔案的情況下,動態的擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。1,不改變原類檔案。2,不使用繼承。3,動態擴充套件。2 裝飾模式的優點 在講優點之間,我們知道乙個類的功能擴充套件我們可以通過繼承的方式重寫父類...
二十三種設計模式 羅列
1 工廠方法模式 factory method 2 抽象工廠模式 abstract factory 3 單例模式 singleton 4 建造者模式 builder 5 原型模式 prototype 6 介面卡模式 adapter 7 裝飾模式 decorator 8 模式 proxy 9 外觀模式...