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層中,負責從實體獲取或載入資料。依賴規則如下
![268450-901fc7b43f05763e.png](https://i.iter01.com/images/87435e6250cc111359fbfa6547aee326dcd243f39421b814a25c07f2543379c0.png)
關鍵是,高層介面(一般為Activity或者Fragment)不知道底層介面的細節,或者更準確地說,高層介面不能,不應該,並且必須不瞭解底層介面的細節,是(面向)抽象的,並且是細節隱藏的。
實現mvp的要點
- Activity只是負責處理事件監聽或者展示每個檢視元件
- 所有的業務邏輯必須委託給Presenter類
- 在MVP中,View和Presenter是一 一對應的(在MVVM中是一對多的)
示例見:http://www.jianshu.com/p/7567ed0d1853
其實Present負責業務,Activity只是實現了底層介面,但是沒有呼叫IView方法,具體呼叫方法在哪裡呼叫,應該是屬於業務層的,我們肯定交給Present去管理。
![2200129-6e1e018c67f8fe55.jpg](https://i.iter01.com/images/94e6817ef1198c7c6c164139839eea790a9479de065755da617e1a02c6537770.png)
相關文章
- mvp模式MVP模式
- MVC模式和MVP模式的區別MVC模式MVP
- MVP那些事兒(7)……Repository設計分析MVP
- MVP應用架構模式MVP應用架構模式
- 基於MVP模式,設計自己的RxJava+Retrofit2+Okhttp3+Rxlifecycle開發框架MVP模式RxJavaHTTP框架
- 設計模式(四)Singleton設計模式設計模式
- 設計模式----工廠設計模式設計模式
- Java設計模式——模板設計模式Java設計模式
- 設計模式-工廠設計模式設計模式
- 淺談MVC/MVP/MVVM模式(概述)MVCMVPMVVM模式
- Android MVP模式專案實戰AndroidMVP模式
- iOS MVP模式重構實踐iOSMVP模式
- iosswift實現簡單MVP模式iOSSwiftMVP模式
- iOS開發-MVP架構模式iOSMVP架構模式
- 設計模式之單例設計模式設計模式單例
- 【設計模式】設計模式(一)-- 大話設計模式讀書筆記設計模式筆記
- 【設計模式】漢堡中的設計模式——策略模式設計模式
- Android 架構設計:MVC、MVP、MVVM和元件化Android架構MVCMVPMVVM元件化
- 設計模式----中介模式設計模式
- 設計模式-中介模式設計模式
- 設計模式(策略模式)設計模式
- 設計模式-代理模式設計模式
- 設計模式-策略模式設計模式
- 設計模式-模板模式設計模式
- 設計模式——模板模式設計模式
- 設計模式----代理模式設計模式
- 設計模式~代理模式設計模式
- 【設計模式】代理模式設計模式
- 設計模式——策略模式設計模式
- 設計模式——代理模式設計模式
- 一.設計模式之工廠設計模式設計模式
- 設計模式總結 —— 單例設計模式設計模式單例
- JavaScript設計模式初探--單例設計模式JavaScript設計模式單例
- JavaScript設計模式之建立型設計模式JavaScript設計模式
- 23種設計模式(八)-原型設計模式設計模式原型
- 23種設計模式(二)---策略設計模式設計模式
- MVC,MVP 和 MVVM 模式如何選擇?MVCMVPMVVM模式
- 一個簡單的MVP模式案例MVP模式
- Yii2設計模式——設計模式簡介設計模式