Android 開發中常用到的設計模式有哪些?

舉個例子吧,比如在哪裡用哪個模式。。


觀察者模式、單例模式、適配器模式、策略模式、模板方法模式等。。。。


要理解android系統自然也能想到那些設計模式了

1. Application 單例模式


2. 觀察者模式 各種listener


3. MVC 這個好理解


4. 響應鏈 觸摸、按鍵等各種事件的傳遞

5.工廠模式


狗屁設計模式,設計模式還不都是被亂改需求的產品逼出來的內功心法。

Sorry,不應該說髒話。

FrameWork 層的源代碼,各種模式的運用。


還有飛行模式


listview幾乎是離不開適配器的

而listview的適配器還實現了觀察者

工廠(比如BitmapFactory)也挺常見

View也離不開組合


用了比較多的設計模式,比如常見的有Singleton,UI方面給有的控制項採用了MVC模式,在Framework的各個子系統里,Proxy模式幾乎都被用濫了。


單例,代理,構建器,策略,工廠,觀察者


最近比較火的MVVM 模式,聽起來似乎很叼,但是還沒去嘗試過。個人比較喜歡mvp模式。

在說MVP之前,先談談Android中的MVC,Model層沒有什麼爭議,主要在View層和Control上,大部分開發者應該都是在Activity中寫大量的邏輯代碼,同事也需要Activity控制視圖的顯示,譬如Toast、Dialog彈出等等,這就讓Activity顯得很笨重,維護起來也很麻煩。但即使如此,我詳細大部分程序員都是這麼乾的。這裡的Activity我相信大多數程序員應該是把它當作C層來處理。

接下來我們來說說MVP,Model同樣不多說,P層相當於MVC中的Control,不了解的同學可以先去了解下什麼是MVP模式。用MVP模式運用在Android中,Activity只擔任View層的操作,只負責視圖的顯示和更新,邏輯操作都放到了P中。這個就使得邏輯層更加靈活,代碼復用性也更高,細心的同學,應該能發現在谷歌新推的API中,已經有MVP模式的源碼。個人推薦


工廠模式是基礎,用的最廣泛。適配器模式,c#有DataAdapter 類,android 有Adapter 類。觀察者模式,涉及gui 的編程都會用到,簡單的控制項對單擊滑鼠的響應都是觀察者模式。迭代器模式,c#中每次foreach 都是對迭代器的調用。訪問者模式,對一個集合中的不同元素用不同的方法就會用到訪問者模式,如果對集合中的元素採用統一方法但需要不同的統一方法就是策略模式。裝飾模式,靈活的給類添加功能。模版模式,充分利用多態大大減少了代碼的冗餘。


單例模式 涉及一些敏感資源時候需要用到

工廠模式

觀察者模式 listener

等等。。。

如果已經有一定的編碼基礎,建議去看下設計模式,推薦《head first 設計模式》。理解了之後,你自然地就能在項目中運用了。


MVC模式


dialog的創建用到了建造器模式


回答都認真點,一句話,半句話就發上來了,這裡不是百度知道,如果是大牛就總結出來,如果不太清楚的,就看大牛回答。


簡單工廠模式、抽象工廠模式、觀察者模式、單例模式、適配器模式


推薦閱讀:

最上層的語言和最底層的語言都無需設計模式?
使用IoDH的單例寫法,靜態內部類的instance變數是否一定需要聲明為final?
環境藝術設計是什麼?
AngularJS中的依賴注入實際應用場景?
C#有哪些有名的依賴注入的框架?

TAG:Android開發 | 設計模式 | Android |