原始碼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 建造者模式主要是用...