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


建造者模式把構造和表示分離開,根據客戶需求生產一個相應的對象。
本來呢,我們根據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定義抽象父類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM