日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android框架式编程之MVP架构

發布時間:2023/12/10 Android 85 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android框架式编程之MVP架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MVP是Google官方發布的Android開發相關的架構知識。本文要講解的是一種最基本的MVP的實現方式,它使用手動的依賴注入來提供具有本地和遠程數據源的存儲庫。異步任務處理回調。

基本的MVP示例項目地址:https://github.com/googlesamples/android-architecture/tree/todo-mvp/。

下圖是基本的MVP的邏輯圖:

注意:在MVP的模式中,View是被重新定義的。

  • android.view.View類被指為Android View。
  • 在MVP中,接受presenter命令的View將被簡稱為View。

MVP(Model-View-Presenter)模式,將APP的結構分為三層:View -?Presenter - Model。

View

1. 提供UI交互

2. 在presenter的控制下修改UI。

3. 將業務事件交由presenter處理。

注意:View層不存儲數據,不與Model層交互。

Presenter

1. 對UI的各種業務事件進行相應處理。也許是與Model層交互,也許自己進行一些計算,也許控制后臺Task,Servic

2. 對各種訂閱事件進行響應,修改UI。

3. 臨時存儲頁面相關數據。

注意 : Presenter內不出現View引用。

Model

1. 從網絡,數據庫,文件,傳感器,第三方等數據源讀寫數據。

2. 對外部的數據類型進行解析轉換為APP內部數據交由上層處理。

3. 對數據的臨時存儲,管理,協調上層數據請求。

下圖是MVP各層的結構示意圖:

MVP架構能夠將復雜的功能分割為各層內的小問題。各層內功能單一。這樣易于功能修改拓展與Debug。解耦的設計,獨立的模塊,更有利于分工開發與測試。?

在示例Demo中,我們可以看到使用到了Fragments,這里使用Fragment有兩個原因:

Fragment和 activity的分離符合實現MVP的思路。Activity是整體的控制器,能夠創建和連接view和presenter。

平板形式的布局方式也能夠很好的使用到Fragment。

關鍵概念

在這個sample app里面,有四個功能:

  • Task
  • TaskDetail
  • AddEditTask
  • Statistics?

每一個功能都有:

  • 定義了View和Presenter的聯系
  • 一個Activity,負責創建Fragment和Presenter。
  • 一個Fragment來實現View的接口
  • 一個Presenter實現了Presenter的接口

一般來說,業務邏輯應該在Presenter里面存在,依賴View來完成Android的UI操作。而View不應該有任何的業務邏輯存在,它只負責將Presenter的命令轉換成UI操作,并將用戶的行為傳遞給Presenter。Contract是定義View和Presenter之間聯系的一系列接口。

Dependencies(依賴)

  • Common Android support libraries (com.android.support.*)
  • Android Testing Support Library (Espresso, AndroidJUnitRunner…)
  • Mockito
  • Google Guava (非空檢查庫)

Features(特性)

MVP 復雜性的理解:

  • 架構的框架/庫/工具的使用復雜性:None — 不復雜
  • 概念的復雜性:低,這個是一個Android純MVP
  • 可測試性: 單元測試 -- 高, Presenter 和 數據源都可以進行單元測試; UI測試 -- 高,允許使用假數據進行注入測試。
  • 代碼度量:相比較傳統的項目,MVP架構會定義更多的類和接口。所以MVP的代碼行數和類的數量都會比較高。
  • 可維護性:高 -- 易于修改和添加一個功能
  • 學習成本:低 -- 功能易于發現,責任明確。開發人員不需要熟悉任何依賴于項目外部的的project。

?

轉載于:https://www.cnblogs.com/renhui/p/6277398.html

總結

以上是生活随笔為你收集整理的Android框架式编程之MVP架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。