MVP設計模式
參考資料
前言
讓我們思考一下為什麼在Android開發中如此迫切地需要一個清晰的軟體架構?
在Android開發中,如果你不考慮架構的話,Activity類往往會越來越大。這是因為,在Android中,允許View和其它執行緒共存於Activity內。其實最大的問題莫過於在Activity中同時存在業務邏輯和UI邏輯。這會增加測試和維護的成本。
什麼是MVP?
MVP代表Model,View和Presenter。
- View層負責處理使用者事件和檢視部分的展示。在Android中,它可能是Activity或者Fragment類。
- Model層負責訪問資料。資料可以是遠端的Server API,本地資料庫或者SharedPreference等。
- Presenter層是連線(或適配)View和Model的橋樑。
下圖是基於MVP架構的模式之一。View是UI執行緒。Presenter是View與Model之間的介面卡。UseCase或者Domain在Model層中,負責從實體獲取或載入資料。依賴規則如下
關鍵是,高層介面(一般為Activity或者Fragment)不知道底層介面的細節,或者更準確地說,高層介面不能,不應該,並且必須不瞭解底層介面的細節,是(面向)抽象的,並且是細節隱藏的。
實現mvp的要點
- Activity只是負責處理事件監聽或者展示每個檢視元件
- 所有的業務邏輯必須委託給Presenter類
- 在MVP中,View和Presenter是一 一對應的(在MVVM中是一對多的)
示例見:http://www.jianshu.com/p/7567ed0d1853
其實Present負責業務,Activity只是實現了底層介面,但是沒有呼叫IView方法,具體呼叫方法在哪裡呼叫,應該是屬於業務層的,我們肯定交給Present去管理。
相關文章
- MVP設計模式應該這樣掌握MVP設計模式
- MVP+Dagger2設計,MVP架構模式實現新思路 (Demo)MVP架構模式
- mvp模式MVP模式
- MVP架構設計 初探MVP架構
- MVC模式和MVP模式的區別MVC模式MVP
- MVP應用架構模式MVP應用架構模式
- Android學習探索之運用MVP設計模式實現專案解耦AndroidMVP設計模式解耦
- 設計模式----工廠設計模式設計模式
- 設計模式-工廠設計模式設計模式
- Java設計模式——模板設計模式Java設計模式
- 設計模式---外觀設計模式設計模式
- [設計模式]單例設計模式設計模式單例
- 設計模式-裝飾設計模式設計模式
- 基於MVP模式,設計自己的RxJava+Retrofit2+Okhttp3+Rxlifecycle開發框架MVP模式RxJavaHTTP框架
- MVP那些事兒(7)……Repository設計分析MVP
- 架構設計的歷史·MVC·MVP·MVVM架構MVCMVPMVVM
- 淺談MVC/MVP/MVVM模式(概述)MVCMVPMVVM模式
- MVP模式的經典封裝MVP模式封裝
- iOS MVP模式重構實踐iOSMVP模式
- 細說 Android 的 MVP 模式AndroidMVP模式
- 說說Android的MVP模式AndroidMVP模式
- iOS開發-MVP架構模式iOSMVP架構模式
- 設計模式之單例設計模式設計模式單例
- 設計模式(四)Singleton設計模式設計模式
- PHP設計模式—建立型設計模式PHP設計模式
- 【設計模式】設計模式的分類設計模式
- 【設計模式】設計模式(一)-- 大話設計模式讀書筆記設計模式筆記
- 【設計模式】漢堡中的設計模式——策略模式設計模式
- 設計模式----代理模式設計模式
- 設計模式----中介模式設計模式
- 設計模式——策略模式設計模式
- 設計模式(策略模式)設計模式
- 設計模式-中介模式設計模式
- 設計模式-模板模式設計模式
- 設計模式——模板模式設計模式
- 設計模式——代理模式設計模式
- 設計模式-代理模式設計模式
- 設計模式-策略模式設計模式