什么是建造者模式

所謂建造者模式,就是將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示的設(shè)計(jì)模式。建造者模式在構(gòu)建過程中隱藏了復(fù)雜的實(shí)現(xiàn)細(xì)節(jié),可以大大降低代碼耦合度。
建造者模式的實(shí)現(xiàn)方式
《水滸傳》講述了的故事,梁山泊是一個(gè)不斷壯大的隊(duì)伍
先寫一個(gè)Troops:
public abstract classTroops { |
這是梁山的Troops:
public classLiangshan extendsTroops { |
再寫一個(gè)Builder:
public abstract classBuilder { |
這是好漢們的Builder:
public classLiangshanBuilder extendsBuilder { |
接下來寫一個(gè)Director:
public classDirector { |
我們只需要如下代碼便可以實(shí)現(xiàn)梁山好漢的大聚義:
Builder builder = newLiangshanBuilder(); |
在實(shí)際開發(fā)過程中,Director層常常被省略,由一個(gè)鏈?zhǔn)秸{(diào)用的Builder來進(jìn)行對(duì)象的組裝。我們這次用梁山好漢的對(duì)立面——方臘來舉例,這次這么改寫上文的Builder:
public classMingjiaoBuilder{ |
當(dāng)然,Troops是這樣繼承的:
public classMingjiao extendsTroops { |
然后方臘作亂犯上的過程是這樣的:
MingjiaoBuilder builder = newMingjiaoBuilder() |
Android源碼中的建造者模式
(1)AlertDialog.Builder
AlertDialog.Builder是Android源碼中最常見的建造者模式,調(diào)用方式不再贅述。不過請(qǐng)注意這個(gè)建造者模式中并沒有Director層的出現(xiàn),因此這是一種簡(jiǎn)化的建造者模式。
Android開發(fā)中如何利用建造者模式
(1)建造者模式具備封裝性良好的優(yōu)點(diǎn)。在一個(gè)對(duì)象的初始化特別復(fù)雜、并且很多參數(shù)都有默認(rèn)值時(shí)的優(yōu)勢(shì)非常明顯。
(2)建造者模式還具備Builder獨(dú)立、易于擴(kuò)展的優(yōu)點(diǎn)。可以在幾個(gè)setter方法執(zhí)行順序不同時(shí)產(chǎn)生不同的結(jié)果。
需要注意的幾個(gè)問題
(1)建造者模式會(huì)產(chǎn)生多余的Builder對(duì)象和Director對(duì)象,是典型的用運(yùn)行效率換開發(fā)進(jìn)度的設(shè)計(jì)模式
本系列其他博客
【設(shè)計(jì)模式與Android】原型模式——復(fù)制中心走出來的克隆人
【設(shè)計(jì)模式與Android】工廠方法模式——化工女神的工廠
【設(shè)計(jì)模式與Android】抽象工廠模式——嵌合體克隆工廠
【設(shè)計(jì)模式與Android】策略模式——錦囊里的上策中策下策
【設(shè)計(jì)模式與Android】狀態(tài)模式——一個(gè)人的兩幅面孔
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞名稱:【設(shè)計(jì)模式與Android】建造者模式——建軍大業(yè)-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://chinadenli.net/article48/edhhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、標(biāo)簽優(yōu)化、企業(yè)建站、全網(wǎng)營(yíng)銷推廣、營(yíng)銷型網(wǎng)站建設(shè)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容