1择示、適配器模式:ListView或GridView的Adapter
簡介:不同的數(shù)據(jù)提供者使用一個適配器來向一個相同的客戶提供服務媚创。
2、建造者模式:AlertDialog.Builder
簡介:可以分步地構造每一部分雌桑。
3妇菱、命令模式:Handler.post后Handler.handleMessage
簡介:把請求封裝成一個對象發(fā)送出去,方便定制虑乖、排隊懦趋、取消。
4疹味、享元模式:Message.obtainMessage通過重用Message對象來避免大量的Message對象被頻繁的創(chuàng)建和銷毀仅叫。
簡介:運用共享技術有效地支持大量細粒度的對象。
5糙捺、迭代器模式:如通過Hashtable.elements方法可以得到一個Enumeration诫咱,然后通過這個Enumeration訪問Hashtable中的數(shù)據(jù),而不用關心Hashtable中的數(shù)據(jù)存放方式洪灯。
簡介:提供一個方法順序訪問數(shù)據(jù)集合中的所有數(shù)據(jù)而又不暴露對象的內部表示坎缭。
6、備忘錄模式:Activity的onSaveInstanceState和onRestoreInstanceState就是通過Bundle這種序列化的數(shù)據(jù)結構來存儲Activity的狀態(tài)签钩,至于其中存儲的數(shù)據(jù)結構,這兩個方法不用關心
簡介:不需要了解對象的內部結構的情況下備份對象的狀態(tài)铅檩,方便以后恢復憎夷。
7、觀察者模式:我們可以通過BaseAdapter.registerDataSetObserver和BaseAdapter.unregisterDataSetObserver兩方法來向BaseAdater注冊昧旨、注銷一個DataSetObserver蒋得。這個過程中,DataSetObserver就是一個觀察者入偷,它一旦發(fā)現(xiàn)BaseAdapter內部數(shù)據(jù)有變量疏之,就會通過回調方法DataSetObserver.onChanged和DataSetObserver.onInvalidated來通知DataSetObserver的實現(xiàn)類。事件通知也是觀察者模式
簡介:一個對象發(fā)生改變時拯爽,所有信賴于它的對象自動做相應改變逼肯。
8三椿、原型模式:比如我們需要一張Bitmap的幾種不同格式:ARGB_8888纽乱、RGB_565鹏倘、ARGB_4444、ALAPHA_8等带射。那我們就可以先創(chuàng)建一個ARGB_8888的Bitmap作為原型窟社,在它的基礎上券勺,通過調用Bitmap.copy(Config)來創(chuàng)建出其它幾種格式的Bitmap。另外一個例子就是Java中所有對象都有的一個名字叫clone的方法灿里,已經原型模式的代名詞了
簡介:在系統(tǒng)中要創(chuàng)建大量的對象关炼,這些對象之間具有幾乎完全相同的功能,只是在細節(jié)上有一點兒差別钠四。
9盗扒、代理模式:類似于ios開發(fā)的delegate委托模式,所有的AIDL都一個代理模式的例子缀去。假設一個Activity A去綁定一個Service S,那么A調用S中的每一個方法其實都是通過系統(tǒng)的Binder機制的中轉甸祭,然后調用S中的對應方法來做到的缕碎。Binder機制就起到了代理的作用。
簡介:為其他對象提供一種代理以控制對這個對象的訪問池户。
10咏雌、狀態(tài)模式:View.onVisibilityChanged方法,就是提供了一個狀態(tài)模式的實現(xiàn)校焦,允許在View的visibility發(fā)生改變時赊抖,引發(fā)執(zhí)行onVisibilityChanged方法中的動作。
簡介:狀態(tài)發(fā)生改變時寨典,行為改變氛雪。
11、策略模式:
舉例:Java.util.List就是定義了一個增(add)耸成、刪(remove)报亩、改(set)、查(indexOf)策略井氢,至于實現(xiàn)這個策略的ArrayList弦追、LinkedList等類,只是在具體實現(xiàn)時采用了不同的算法花竞。但因為它們策略一樣劲件,不考慮速度的情況下,使用時完全可以互相替換使用约急。
簡介:定義了一系列封裝了算法零远、行為的對象,他們可以相互替換烤宙。
12遍烦、調解者模式
簡介:一個對象的某個操作需要調用N個對象的M個方法來完成時,把這些調用過程封裝起來躺枕,就成了一個調解者
舉例:如Resource.getDrawable方法的實現(xiàn)邏輯是這樣的:創(chuàng)建一個緩存來存放所有已經加載過的服猪,如果getDrawable中傳入的id所對應的Drawable以前沒有被加載過供填,那么它就會根據(jù)id所對應的資源類型,分別調用XML解析器生成罢猪,或者通過讀取包中的圖片資源文件來創(chuàng)建Drawable近她。
而Resource.getDrawable把涉及到多個對象、多個邏輯的操作封裝成一個方法膳帕,就實現(xiàn)了一個調解者的角色粘捎。
13、抽象工廠模式
DAO與Service的使用