C 設計模式(三)建造著模式

2021-06-28 11:47:38 字數 1587 閱讀 4255

class test

//public class test1

//// public void show()

//

// }

//}//public class test2

//// public test1 getitem()

//

//}public class director

}/// /// 電腦類

///

public class computer

public void show()

console.writeline("finish");}}

/// /// 抽象建造者,這個場景下為 "組裝人" ,這裡也可以定義為介面

///

public abstract class builder

/// /// 具體建立者,具體的某個人為具體建立者,例如:裝機小王啊

///

public class concretebuilder1 : builder

public override void buildpartmainboard()

public override computer getcomputer()

}/// /// 具體建立者,具體的某個人為具體建立者,例如:裝機小李啊

/// 又裝另一台電腦了

///

public class concretebuilder2 : builder

public override void buildpartmainboard()

public override computer getcomputer()

}}

在軟體系統中,有時需要建立乙個複雜物件,並且這個複雜物件由其各部分子物件通過一定的步驟組合而成。例如乙個採購系統中,如果需要採購員去採購一批電腦時,在這個實際需求中,電腦就是乙個複雜的物件,它是由cpu、主機板、硬碟、顯示卡、機箱等組裝而成的,如果此時讓採購員一台一台電腦去組裝的話真是要累死採購員了,這裡就可以採用建造者模式來解決這個問題,我們可以把電腦的各個元件的組裝過程封裝到乙個建造者類物件裡,建造者只要負責返還給客戶端全部元件都建造完畢的產品物件就可以了。

介紹完了建造者模式的具體實現之後,讓我們總結下建造模式的實現要點:

在建造者模式中,指揮者是直接與客戶端打交道的,指揮者將客戶端建立產品的請求劃分為對各個部件的建造請求,再將這些請求委派到具體建造者角色,具體建造者角色是完成具體產品的構建工作的,卻不為客戶所知道。

建造者模式主要用於「分步驟來構建乙個複雜的物件」,其中「分步驟」是乙個固定的組合過程,而複雜物件的各個部分是經常變化的(也就是說電腦的內部元件是經常變化的,這裡指的的變化如硬碟的大小變了,cpu由單核變雙核等)。

產品不需要抽象類,由於建造模式的建立出來的最終產品可能差異很大,所以不大可能提煉出乙個抽象產品類。

在前面文章中介紹的抽象工廠模式解決了「系列產品」的需求變化,而建造者模式解決的是 「產品部分」 的需要變化。

由於建造者隱藏了具體產品的組裝過程,所以要改變乙個產品的內部表示,只需要再實現乙個具體的建造者就可以了,從而能很好地應對產品組成元件的需求變化。

設計模式(三 建造者模式)

1.建造者模式的作用 1.分離了物件子元件的構建和裝配,構建由builder負責,裝配由director負責。從而可以構 造出複雜的物件。這個模式適用於 某個物件的構建過程複雜的情況下使用。2.由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以做出不同的物件 相同的構建器,不同的裝配順序也...

設計模式(三)建造者模式

定義 建造者模式 builder 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。簡介 建造者模式 builder 是建立乙個複雜物件的建立型模式,將構建複雜物件的過程和它的部件解耦,使得構建過程和部件的表示分離開來。例如我們要diy乙個台式電腦電腦,我們找到diy商家,我...

設計模式(三)建造者模式(建立型)

定義 將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。使用場景 建立的產品有複雜的內部結構,且建立的產品有較多的共同點,其組成部分相似。隔離複雜物件的建立,使得相同的過程可以建立不同的產品。與抽象工廠的區別 在建造者模式裡,有個指導者,由指導者來管理創造者,使用者是與指導...