Android設計模式系列(12)–SDK源碼之產生器模式(建造者模式)

來源:互聯網
上載者:User

建造者模式把構造和表示分離開,根據客戶需求生產一個相應的對象。
本來呢,我們根據Builder介面實現不同的具體的ConcreteBuilder,就可生產不同的對象了。
但是,下面例子的只有一個Builder,所以也沒有介面Builder,也沒有其他的ConcreteBuilder。
但是我今天要講的例子太簡單,簡單到都不覺得是建造者模式,但是又有建造者模式的感覺。

1. 意圖
將一個複雜物件的構建和它的表示分離,使得同樣的建立過程可以建立不同的表示。

2.結構圖和代碼
android中大量的使用對話方塊組件,它的調用方法就是構建,拼接,表示。

Builder通過setTitle(),setMessage(),setIcon()等方法在create()中構造出一個AlertDialogInstance對象。
然後客戶可以把把AlertDialogInstance對象show出去。

針對這個例子,我有必要通過擴充一下,以正建造者模式之名。
如何擴充?
(1).建立其他的ConcreteBuilder
(2).建立其他的ElseDialog
(3).第1,2步決定了我們最好建立一個抽象的Builder
(4).建立一個Context,把builder注入進去,生產不同的Dialog(或者其他UI)對象。

3.效果
(1).建立型模式
(2).可以生產不同的Dialog,也可以生產其他的UI,生產的Product可以是差別很大的,所以也沒必要為Product定義抽象父類。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.