Android開發模式之--MVP設計模式一

今天天氣挺好的,我也是該對Android的設計模式學習一下。時間比較寶貴 直接進入正題!

MVP(M-Model-模型、V-View-視圖、P-Presenter-表示器)

爲什麼使用MVP開發,MVP的設計模式對Android的應用開發有什麼好處:

優點:與普遍的MVC相比MVP的耦合性更加的低,因爲MVC當中Activity不僅充當view而且還充當的控制器的角色,這樣的話如果該頁面的業務邏輯複雜那麼這個頁面的代碼量就比較多對與後期的維護和代碼的閱讀性就會大大降低。而MVP則是把V(View)和C(Controller)進行徹底的分離,繼而Activity所需要做的便是與用戶交互或是View得繪製,而邏輯層則是由Presenter負責完成View層與Model層的交互。

下面是結構圖自己手畫的:



還有一點挺重要的便是Android的oom(由內存泄露造成APP的內存不夠用產生的),兩個原因產生的一個是Bitmap產生的(Bitmap Leak)這個大家應該是比較瞭解,另外一個是Activity產生的(Activity Leak),Activity是有生命週期的這點用戶隨意的進行Activity的切換,當系統的資源不夠時,系統並會自行的進行回收處於後臺的Activity的資源避免oom錯誤。在MVC中一個應用的一大堆異步任務和對UI的操作都是在Activity中的,並且當Activity執行onDestroy後,這些異步任務依然保持着對Activity實例的引用(Imageview加載圖片),從而導致系統無法回收這個Activity的實例,從而導致Activity Leak,Activity在堆中(Java Heap)佔最多內存的,所以如何Activity 產生了Activity Leak就容易導致整個應用的OOM,採用MVP模式,只要在當前的Activity的onDestroy裏,分離異步任務對Activity的引用,就能避免 Activity Leak。

注意點:項目開發中選擇一種這樣的軟件設計模式需保持慎重心態,一旦確定使用MVP作爲你App的開發模式那你只能一直寫下去,如果在使用MVP模式開發過程中發現問題而且坑越來越大,這時你想用MVC等來重新設計的話基本上就等於推倒重來了。

下個星期寫一個小demo練練手 還有謝謝各位大神給我的參考!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章