設(shè)計(jì)模式,玄乎又懸点骑,昨天還看得清清楚楚真真切切,但是過了一天就全然不明不白谍夭,終其原因呢黑滴,無外乎就是壓根這個(gè)東西就理解,但是就是說不來是什么東西紧索。
說下我對(duì)建造者模式的初步理解:
建造者模式:我舉個(gè)例子吧:你去肯德基消費(fèi)袁辈,肯德基里面有炸雞,啤酒珠漂,可樂晚缩,漢堡,薯?xiàng)l媳危。等各種各樣的東西荞彼,你去不去人家都在那里,然后你進(jìn)去一下有吃不完待笑,選個(gè)套餐鸣皂,套餐1:炸雞和啤酒;套餐2:漢堡和薯?xiàng)l暮蹂;首先你得創(chuàng)建一個(gè)肯德基的類寞缝,然后設(shè)法向其中傳遞你想選的套餐名字,然后調(diào)用點(diǎn)餐的方法就完事了仰泻; 在肯德基的類中呢第租,有各種各樣的屬性:比如說制作炸雞的師傅,制作啤酒的師傅我纪,制作漢堡的機(jī)器慎宾,制作薯?xiàng)l的師傅丐吓,然后這些師傅都是肯德基的屬性,收到客人點(diǎn)餐(就是主方法里面調(diào)用點(diǎn)餐的方法)各個(gè)師傅各自忙活自己的(也就是說各個(gè)師傅都有自己的類趟据,可以生產(chǎn)出來這些東西)券犁,在肯德基類的點(diǎn)餐方法中分別通知各個(gè)師傅進(jìn)行生產(chǎn),各司其職汹碱;這就是所謂的建造者模式粘衬;
下面是應(yīng)用比較官方的話:
- 意圖:將一個(gè)復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示咳促;
- 主要解決:主要解決在軟件系統(tǒng)中稚新,有時(shí)候面臨著“一個(gè)復(fù)雜對(duì)象"的創(chuàng)建工作,期通常由各個(gè)部分的子對(duì)象用一定的算法構(gòu)成跪腹,由于需求的變化褂删,這個(gè)復(fù)雜的對(duì)象的各個(gè)部分經(jīng)常面臨著劇烈的變化,但是將他們組合在一起的算法卻相對(duì)穩(wěn)定冲茸。
- 何時(shí)使用:一些基本不見不會(huì)變屯阀,而其組合經(jīng)常變化的時(shí)候。
- 如何解決:將變與不變分離開轴术。
- 優(yōu)點(diǎn):1.建造者獨(dú)立难衰,易擴(kuò)展。2.便于控制細(xì)節(jié)風(fēng)險(xiǎn)逗栽。
- 使用場景:1.需要生成的對(duì)象具有復(fù)雜的內(nèi)部結(jié)構(gòu)盖袭。2.需要生成的對(duì)象內(nèi)部屬性本身相互依賴。
- 注意事項(xiàng):與工廠模式的區(qū)別是:建造者模式更加關(guān)注與零件裝配的順序彼宠。