大話設計模式學習筆記(13) 建造者模式

2021-08-17 10:11:26 字數 1383 閱讀 5127

原始碼git位址

捏兩個小人乙個胖乙個瘦。必須要有頭 身體 四肢。

這個場景的主要特點在於我們需要保證這個小人的穩定性, 即必須保證有客戶端在建造小人的時候有頭 身體 四肢三個部分。所以把各個部分的建造放在客戶端一定是不合適的(客戶端執行的**越多,越容易出錯)。

建造者模式

package builder;

public

class

builder

}/**

* 建造者

*/inte***ce personbuilder

class thinbuilder implements personbuilder

@override

public

void

buildbody()

@override

public

void

buildarmsandlegs()

}class fatbuilder implements personbuilder

@override

public

void

buildbody()

@override

public

void

buildarmsandlegs()

}/**

* 指揮者

*/class persondirector

public

void

createperson()

}

結構大家大致看一下。其實就是先把把捏小人的過程抽象成乙個介面,再用指揮者來把捏小人的過程封裝起來。因為這幾步都是必須的,封裝起來能確保在客戶端呼叫的時候都會執行(這一點跟模板方法的思想有點類似)。這樣使用者在捏人的時候就不需要知道具體的步驟,只需要告訴指揮者要捏胖子還是瘦子,指揮者就會捏出相應的人物。大家自己品味一下,其實能看到我們之前學過的設計模式的一些味道。

大話設計 建造者模式

官方解釋建造者模式 名稱 builder pattern 定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。圖示 理解 builder是為建造乙個product物件的各個部件指定的抽象介面。concretebuilder是具體的建造者,實現builder介面,構造和裝配...

大話設計模式筆記(十) 建造者模式

畫乙個小人,有頭 身體 兩手 兩腳就可以了。人類 created by callmedevil on 2019 7 21.public class person public void drawbody public void drawhand public void drawleg public ...

大話設計模式 建造者模式

1 建造者模式 builder 又叫生成器模式,它是將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的比奧斯。如果我們用了建造者模式,那麼使用者就只需指定需要建造的型別就可以得到它們,而具體建造的過程和細節就不需知道了。2 建造者模式 builder 結構圖 3 建造者模式主要是用...