天天看點

設計模式--建造者設計模式

BUILDER?MM最愛聽的就是“我愛你”這句話了,見到不同地方的MM,要能夠用她們的方言跟她說這句話哦,我有一個多種語言翻譯機,上面每種語言都有一個按鍵,見到MM我隻要按對應的鍵,它就能夠用相應的語言說出“我愛你”這句話了,國外的MM也可以輕松搞掂,這就是我的“我愛你”builder。(這一定比美軍在伊拉克用的翻譯機好賣)   建造模式:将産品的内部表象和産品的生成過程分割開來,進而使一個建造過程生成具有不同的内部表象的産品對象。建造模式使得産品内部表象可以獨立的變化,客戶不必知道産品内部組成的細節。建造模式可以強制實行一種分步驟進行的建造過程。

I love you(英語)

あなたのことが好きです(日語)

사랑해요(韓語)

請不要問我怎麼會說這麼多種語言

好吧,我要用設計模式實作它:

首先聲明一個抽象類:

  

 

運作結果為:

 I Love You

あなたのことが好きです

사랑해요

建造者設計模式在android中的使用:

設計Ios風格的dialog的自定義dialog中,

使用Builder模式來替代多參數構造函數。

Builder模式的要點就是通過一個代理來完成對象的建構過程。這個代理職責就是完成建構的各個步驟,同時它也是易擴充的。

在實際使用這個dialog,使用串使的set來設定dialog的參數,來修改dialog的風格,傳回不同的builder對象:

 建造者設計模式封裝了實作的細節,因為調用不同的方法,建立出來的對象所具有的屬性特征就不同。當對象參數很多的時候比較适合采用建造者設計模式去實作,不必寫冗長的構造方法。比較優雅的建立合适的帶有不同特征的對象。

再實際開發過程中,Director角色經常會被忽略掉,而直接使用Builder來進行對象的組裝,這個builder通常為鍊式調用,關鍵是每個setter方法傳回自身,也就是說return this,整個結構變得更加簡單,對對象的組裝過程更精細的控制。

繼續閱讀