什么是建造者模式
成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十年時間我們累計服務(wù)了上千家以及全國政企客戶,如成都資質(zhì)代辦等企業(yè)單位,完善的項目管理流程,嚴(yán)格把控項目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致贊美。
所謂建造者模式,就是將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示的設(shè)計模式。建造者模式在構(gòu)建過程中隱藏了復(fù)雜的實現(xiàn)細(xì)節(jié),可以大大降低代碼耦合度。
建造者模式的實現(xiàn)方式
《水滸傳》講述了的故事,梁山泊是一個不斷壯大的隊伍
先寫一個Troops:
public abstract classTroops { |
這是梁山的Troops:
public classLiangshanextendsTroops { |
再寫一個Builder:
public abstract classBuilder { |
這是好漢們的Builder:
public classLiangshanBuilderextendsBuilder { |
接下來寫一個Director:
public classDirector { |
我們只需要如下代碼便可以實現(xiàn)梁山好漢的大聚義:
Builder builder =newLiangshanBuilder(); |
在實際開發(fā)過程中,Director層常常被省略,由一個鏈?zhǔn)秸{(diào)用的Builder來進(jìn)行對象的組裝。我們這次用梁山好漢的對立面——方臘來舉例,這次這么改寫上文的Builder:
public classMingjiaoBuilder{ |
當(dāng)然,Troops是這樣繼承的:
public classMingjiaoextendsTroops { |
然后方臘作亂犯上的過程是這樣的:
MingjiaoBuilder builder =newMingjiaoBuilder() |
Android源碼中的建造者模式
(1)AlertDialog.Builder
AlertDialog.Builder是Android源碼中最常見的建造者模式,調(diào)用方式不再贅述。不過請注意這個建造者模式中并沒有Director層的出現(xiàn),因此這是一種簡化的建造者模式。
Android開發(fā)中如何利用建造者模式
(1)建造者模式具備封裝性良好的優(yōu)點。在一個對象的初始化特別復(fù)雜、并且很多參數(shù)都有默認(rèn)值時的優(yōu)勢非常明顯。
(2)建造者模式還具備Builder獨立、易于擴展的優(yōu)點??梢栽趲讉€setter方法執(zhí)行順序不同時產(chǎn)生不同的結(jié)果。
需要注意的幾個問題
(1)建造者模式會產(chǎn)生多余的Builder對象和Director對象,是典型的用運行效率換開發(fā)進(jìn)度的設(shè)計模式
本系列其他博客
【設(shè)計模式與Android】原型模式——復(fù)制中心走出來的克隆人
【設(shè)計模式與Android】工廠方法模式——化工女神的工廠
【設(shè)計模式與Android】抽象工廠模式——嵌合體克隆工廠
【設(shè)計模式與Android】策略模式——錦囊里的上策中策下策
【設(shè)計模式與Android】狀態(tài)模式——一個人的兩幅面孔
當(dāng)前標(biāo)題:【設(shè)計模式與Android】建造者模式——建軍大業(yè)
URL分享:http://bm7419.com/article10/jdehgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站策劃、移動網(wǎng)站建設(shè)、ChatGPT、云服務(wù)器、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)