一巍杈、概念
1.1忧饭、定義
將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示筷畦。
建造者模式將一個(gè)復(fù)雜類的創(chuàng)建過程词裤,劃分為多個(gè)「獨(dú)立步驟」子過程,并且根據(jù)需要按照調(diào)整「獨(dú)立步驟」的順序鳖宾,從而生成復(fù)雜類的對(duì)象實(shí)例吼砂。
Builder.png
- Director,指揮者:控制構(gòu)建的算法 和 產(chǎn)品的生成過程鼎文。
- Builder渔肩,抽象建造者:創(chuàng)建過程劃分為多個(gè)「獨(dú)立步驟」的封裝。
- ConcreteBuilder拇惋,具體建造者:實(shí)現(xiàn)細(xì)節(jié)構(gòu)建周偎,實(shí)現(xiàn)Builder的各個(gè)創(chuàng)建步驟方法。
1.2蚤假、解決的問題
在軟件系統(tǒng)中栏饮,有時(shí)候面臨著"一個(gè)復(fù)雜對(duì)象"的創(chuàng)建工作吧兔,其通常由各個(gè)部分的子對(duì)象用一定的算法構(gòu)成磷仰;由于需求的變化,這個(gè)復(fù)雜對(duì)象的各個(gè)部分經(jīng)常面臨著劇烈的變化境蔼,但是將它們組合在一起的算法卻相對(duì)穩(wěn)定灶平。
二、模式的應(yīng)用和優(yōu)缺點(diǎn)
2.1箍土、應(yīng)用場(chǎng)景
- 應(yīng)用場(chǎng)景:
1逢享、去肯德基,漢堡吴藻、可樂瞒爬、薯?xiàng)l、炸雞翅等是不變的,而其組合是經(jīng)常變化的侧但,生成出所謂的"套餐"矢空。
2、在很多游戲軟件中禀横,地圖包括天空屁药、地面、背景等組成部分柏锄,人物角色包括人體酿箭、服裝、裝備等組成部分趾娃,可以使用建造者模式對(duì)其進(jìn)行設(shè)計(jì)缭嫡,通過不同的具體建造者創(chuàng)建不同類型的地圖或人物。
2.2茫舶、優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1械巡、復(fù)雜對(duì)象構(gòu)建過程進(jìn)行解耦,擴(kuò)展變的簡(jiǎn)單容易饶氏,層次更加清晰讥耗,降低系統(tǒng)耦合度
2、構(gòu)建過程的解耦疹启,對(duì)于高風(fēng)險(xiǎn)的對(duì)象更加容易控制細(xì)節(jié)風(fēng)險(xiǎn)古程。缺點(diǎn):
1、產(chǎn)品必須有共同點(diǎn)喊崖,范圍有限制挣磨。
2、如內(nèi)部變化復(fù)雜荤懂,會(huì)有很多的建造類茁裙。