Android MVP模式 谷歌官方代碼解讀

Google官方MVP Sample代碼解讀

關(guān)于Android程序的構(gòu)架, 當前(2016.10)最流行的模式即為MVP模式, Google官方提供了Sample代碼來展示這種模式的用法.
Repo地址: android-architecture.
本文為閱讀官方sample代碼的閱讀筆記和分析.

官方Android Architecture Blueprints [beta]:
Android在如何組織和構(gòu)架一個app方面提供了很大的靈活性, 但是同時這種自由也可能會導致app在測試, 維護, 擴展方面變得困難.

Android Architecture Blueprints展示了可能的解決方案. 在這個項目里, 我們用各種不同的構(gòu)架概念和工具實現(xiàn)了同一個應(yīng)用(To Do App). 主要的關(guān)注點在于代碼結(jié)構(gòu), 構(gòu)架, 測試和維護性.
但是請記住, 用這些模式構(gòu)架app的方式有很多種, 要根據(jù)你的需要, 不要把這些當做絕對的典范.

MVP模式 概念

之前有一個MVC模式: Model-View-Controller.
MVC模式 有兩個主要的缺點: 首先, View持有Controller和Model的引用; 第二, 它沒有把對UI邏輯的操作限制在單一的類里, 這個職能被Controller和View或者Model共享.
所以后來提出了MVP模式來克服這些缺點.

MVP(Model-View-Presenter)模式:

  • Model: 數(shù)據(jù)層. 負責與網(wǎng)絡(luò)層和數(shù)據(jù)庫層的邏輯交互.
  • View: UI層. 顯示數(shù)據(jù), 并向Presenter報告用戶行為.
  • Presenter: 從Model拿數(shù)據(jù), 應(yīng)用到UI層, 管理UI的狀態(tài), 決定要顯示什么, 響應(yīng)用戶的行為.
    MVP模式的最主要優(yōu)勢就是耦合降低, Presenter變?yōu)榧僇ava的代碼邏輯, 不再與Android Framework中的類如Activity, Fragment等關(guān)聯(lián), 便于寫單元測試.

todo-mvp 基本的Model-View-Presenter架構(gòu)

app中有四個功能:

  • Tasks
  • TaskDetail
  • AddEditTask
  • Statistics

每個功能都有:

  • 一個定義View和Presenter接口的Contract接口;
  • 一個Activity用來管理fragment和presenter的創(chuàng)建;
  • 一個實現(xiàn)了View接口的Fragment;
  • 一個實現(xiàn)了Presenter接口的presenter.

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓學習是年輕人改變自己的最好方式