該示例(TODO-MVP)是后續(xù)各種示例演變的基礎,它主要演示了在不帶架構性框架的情況下實現(xiàn)M-V-P模式。其采用手動依賴注入的方式來提供本地數(shù)據(jù)源和遠程數(shù)據(jù)源倉庫。異步任務通過回調(diào)處理。

注意:MVP中View的概念是有所不同的:

  • android.view.View類我們叫它 "Android View"
  • MVP中從P接收命令的東西我們叫它”View”,后文說了,就是Fragment

Fragment

采用Fragment作為視圖的載體有兩個原因:

  • Activity 和 Fragment分離恰好適合用來實現(xiàn)MVP:Activity是創(chuàng)建和連接View與Presenter的總控制器
  • 適配平板設備的布局或多視圖屏幕的場景都可利用Fragment框架的優(yōu)勢

關鍵概念

該App(指官方TODO-MVP示例)中有四個功能:

  • Tasks
  • TaskDetail
  • AddEditTask
  • Statistics

每個功能擁有下列代碼分工:

  • 定義VIew和Presenter之間的“契約”接口
  • 一個Activity類負責創(chuàng)建Fragment和Presenter
  • 一個Fragment類實現(xiàn)VIew接口
  • 一個Presenter類實現(xiàn)Presenter接口
    一般來說,業(yè)務邏輯存在于Presenter中并依賴View完成Android中UI相關的工作。

View中幾乎不包含邏輯:它將Presenter的命令轉(zhuǎn)換為UI動作,并監(jiān)聽用戶動作傳遞給Presenter。

“契約”接口用于定義View和Presenter之間的聯(lián)系。

(譯注:

有人立馬就問到M哪去了,官方實例里M是輕的,與Repository和DataSource概念分離。

我想了解如何學習

姓名:
手機:
留言: