二十三種設計模式 建造者模式篇 Python

2021-09-24 13:04:02 字數 2201 閱讀 3753

(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 外觀模式...