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,整個結構變得更加簡單,對對象的組裝過程更精細的控制。