android中的builder模式非常的常見,應用的也很廣泛,不okhttp,alertdialog等等都有使用這種模式,這種模式的好處就是講操作的細節隱藏了起來,只關注結果;今天我就簡單地分析下alertdialog的原始碼,但是呢,先來寫乙個關於builder的簡單demo,這樣理解alertdialog的原始碼了;
package com.example.dialog;
import android.content.context;
/** * created by wsl on 2016/12/25.
*/public
class
man
public builder name(string name)
public builder age(int age)
public builder ***(string ***)
public builder isit(boolean is)
public context getcontext()
public man build()
private
void
if (this.name != null)
if (this.age != 0)
if (this.*** != null)
if (this.isit == true)
if (this.mcontext != null) }}
}
activity是這樣寫的,
man man = new man.builder(this)
.name("曲洋")
.age(20)
.***("man")
.build();
toast.maketext(this, "man.isit:" + man.isit, toast.length_short).show();
然而並沒有結束,換藥進一步優化:
public
class mancontroller
public
void
if (this.name != null)
if (this.age != 0)
if (this.*** != null)
if (this.isit == true)
if (this.context != null)
}}
這樣就可以將man類中的變數封裝到乙個物件中:
public
class man
public builder name(string name)
public builder age(int age)
public builder ***(string ***)
public builder isit(boolean is)
public context getcontext()
public man build()
}}
好了,先寫這麼點。alertdialog的原始碼模式就和這個demo基本一致,如果試圖將本部落格的**粘過去執行,那你就錯了,這只是模仿原始碼的一部分而已; android設計模式之抽象工廠模式
定義 抽象工廠模式定義為為建立一組相關或者相互依賴的物件提供乙個介面,而且無需指定他們的具體類。它是工廠方法模式的公升級版本。在有多個業務品種,業務分類時,通過抽象工廠模式產生需要的物件是一種非常好的解決方式。模式中包含的角色及其職責 1.抽象工廠 creator 角色 抽象工廠模式的核心,包含對多...
Android設計模式之(10) 命令模式
命令模式屬於行為模式。如你的上級領導指派給你的a,b,c三項任務。讓你做a,你就做a,讓你做b就做b。指哪打哪。外部的人對於你和你的領導來說,知道你的領導派發了abc任務給你,你也完成abc任務,任務具體是怎麼完成的外部的人並不需要關心。大學的新生入學都會進行軍訓,軍訓的專案有正步,齊步,軍姿等等 ...
Android設計模式之(14) 模板模式
模板模式屬於行為模式.簡單理解,某一套程式的流程是不改變的,但是具體的內容是可以更改的。例如公司的財務報表,需要進行申請,然後經理簽字以後才可以審批下來。流程 下屬財務資金審核提交 經理審核 經理簽字 審批完成 內容 有2個人去申請資金,他們執行的流程是一樣的,但是具體申請的資金以及經理審批後給予的...