Android涉及到的設計模式

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的使用

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末危彩,一起剝皮案震驚了整個濱河市攒磨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汤徽,老刑警劉巖娩缰,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谒府,居然都是意外死亡拼坎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門完疫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泰鸡,“玉大人,你說我怎么就攤上這事壳鹤∈⒘洌” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵器虾,是天一觀的道長讯嫂。 經常有香客問我,道長兆沙,這世上最難降的妖魔是什么欧芽? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮葛圃,結果婚禮上千扔,老公的妹妹穿的比我還像新娘。我一直安慰自己库正,他們只是感情好曲楚,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著褥符,像睡著了一般龙誊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喷楣,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天趟大,我揣著相機與錄音鹤树,去河邊找鬼。 笑死逊朽,一個胖子當著我的面吹牛罕伯,可吹牛的內容都是我干的。 我是一名探鬼主播叽讳,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼追他,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了岛蚤?” 一聲冷哼從身側響起邑狸,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎灭美,沒想到半個月后推溃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡届腐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜂奸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犁苏。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扩所,靈堂內的尸體忽然破棺而出围详,到底是詐尸還是另有隱情,我是刑警寧澤祖屏,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布助赞,位于F島的核電站,受9級特大地震影響袁勺,放射性物質發(fā)生泄漏雹食。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一期丰、第九天 我趴在偏房一處隱蔽的房頂上張望群叶。 院中可真熱鬧,春花似錦钝荡、人聲如沸街立。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赎离。三九已至,卻和暖如春端辱,著一層夾襖步出監(jiān)牢的瞬間梁剔,已是汗流浹背虽画。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留憾朴,地道東北人狸捕。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像众雷,于是被迫代替她去往敵國和親灸拍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內容

  • 2021期待與你一起共事砾省,點擊查看崗位[http://www.reibang.com/p/6f4d67fa406...
    閑庭閱讀 16,622評論 0 75
  • 面向對象的六大原則 單一職責原則 所謂職責是指類變化的原因鸡岗。如果一個類有多于一個的動機被改變,那么這個類就具有多于...
    JxMY閱讀 931評論 1 3
  • 0.Android手機操作系統(tǒng)的四層架構? Applications , Application Framewor...
    lucas777閱讀 7,834評論 0 16
  • 剛畢業(yè)初入職場的同學揣苏,往往收入不高,支出不低件舵。離開校園卸察,開始自己打拼,自己賺錢铅祸,自己養(yǎng)活自己坑质,開始承擔更多的責任。...
    Jewel_Z閱讀 450評論 0 0
  • 新的學期開始了临梗,美術班各班小朋友要升班嘍涡扼! 本學期線描班 主要課程:彩色線描;風景線描盟庞;臨某曰Α;默寫茫经。 本學期卡通班...
    西瓜味草莓閱讀 552評論 0 0