設計模式 5 建造者模式

2021-07-29 16:23:40 字數 837 閱讀 2302

什麼是建造者模式?

構造者模式(bulder pattern):將乙個複雜物件的構建與表示分離,使得同樣的構建可以建立不同的表示。

為什麼使用建造者模式?

「複雜物件相當於一輛有待建造的汽車,而物件的屬性相當於汽車的部件,建造產品的過程就相當於組合部件的過程。由於組合部件的過程很複雜,因此,這些部件的組合過程往往被「外部化」到乙個稱作建造者的物件裡,建造者返還給客戶端的是乙個已經建造完畢的完整產品物件,而使用者無須關心該物件所包含的屬性以及它們的組裝方式,這就是建造者模式的模式動機。」(引用自圖說設計模式)

怎樣實現建造者模式?

建造者模式包含四個角色:指揮者,建造者,抽象建造者,產品。

1. 建造者模式的具體流程如下: 指揮者將客戶端建立產品的請求劃分為各個部件的建立請求,再將這些請求委派到具體的建造者角色,具體的建造者角色完成具體的產品,而這個過程不為客戶端所知。

2. 產品不需要抽象類,因為由於可能最終建立出來的產品差異很大,所以不大可能抽象出乙個產品抽象類。

3. 抽象工廠模式解決的是「系列產品」的需求變化,而建造者模式解決的是「產品部分」的需求變化。

4. 建造者模式隱藏了具體產品的組裝過程,所以要改變乙個產品的內部表示,只需要再實現乙個具體的構造者就行了,從而能夠很好的應對產品元件的需求變化。(引用自learning hard的博文)

uml結構圖(引用自learning hard的博文)

設計模式5 建造者模式

建造者模式 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以創造不同的表示。使用場景 1 相同的方法,不同的執行順序,產生不同的事件結果,可以採用建造者模式 2 多個部件或零件,都可以裝配到乙個物件中,但是產生的執行結果又不相同時,可以使用該模式 3 產品類非常複雜,或者產品類中的呼叫順序...

c 設計模式 5 建造者模式

建立型設計模式,就是專門用來建立物件 建立物件的事兒全權由你負責,我就不操心了,有點想領導的感覺,命令下去,活都是工人的,至於是哪個人去做那些事,才是領導的責任。建造者模式,例如乙個車間系統中,如果需要車間老闆想要一批車輛時,在這個實際需求中,車輛就是乙個複雜的物件,它是由車燈 車輛 機箱等組裝而成...

設計模式 建造者模式

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