python設計模式 建造者模式

2021-09-28 12:39:00 字數 2109 閱讀 1015

(一)、什麼是建造者模式

我們想要建立乙個由多個部分構成的物件,而且它的構成需要一步接一步地完成。 只有當各個部分都建立好,這個物件才算是完整的。這正是建造者設計模式。
(二)、工廠模式和建造者模式的區別

(三)、應用案例

引入了乙個建造者computerbuilder、乙個指揮者hardwareengineer以及 一步接一步裝配一台電腦的過程,這樣現在就支援不同的配置了
class

computer

:# 建立乙個電腦類

def__init__

(self, serial_number)

: self.serial = serial_number

self.memory =

none

# 單位為gb

self.hdd =

none

# 單位為gb

self.gpu =

none

def__str__

(self)

: info =

('memory: {}gb'

.format

(self.memory)

,'hard disk: {}gb'

.format

(self.hdd)

,'graphics card: {}'

.format

(self.gpu)

)return

'\n'

.join(info)

class

computerbuilder

:# 電腦製造者

def__init__

(self)

: self.computer = computer(

'ag23385193'

)def

configure_memory

(self, amount)

: self.computer.memory = amount

defconfigure_hdd

(self, amount)

: self.computer.hdd = amount

defconfigure_gpu

(self, gpu_model)

: self.computer.gpu = gpu_model

class

hardwareengineer

:def

__init__

(self)

: self.builder =

none

defconstruct_computer

(self, memory, hdd, gpu)

: self.builder = computerbuilder(

) a =

[step for step in

(self.builder.configure_memory(memory)

, self.builder.configure_hdd(hdd)

, self.builder.configure_gpu(gpu))]

@property

defcomputer

(self)

:return self.builder.computer

defmain()

: engineer = hardwareengineer(

) a = engineer.construct_computer(hdd=

500, memory=

8, gpu=

'geforce gtx 650 ti'

) computer = engineer.computer

print

(computer)

print a

if __name__ ==

'__main__'

: main(

)

Python設計模式 建造者模式

需求,畫人物,要求畫乙個人的頭,左手,右手,左腳,右腳和身體,畫乙個瘦子,乙個胖子 不使用設計模式 encoding utf 8 author kevinlu1010 qq.com if name name print 畫左手 print 畫右手 print 畫左腳 print 畫右腳 print ...

Python設計模式 建造者模式

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

設計模式 建造者模式

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