我理解的 Android MVP 模式

2021-08-22 13:30:26 字數 888 閱讀 6132

之前一直使用 mvc 模式開發 android 應用,而 mvp 模式也出現了好久,可能之前還是太菜了吧,看網上部落格,google 官方的例子,總是不懂,不過最近又開始看,多少有了些理解,寫出來與大家分享一下。

一開始的 mvc 模式,activity 其實承擔了 v 和 c 的職責。負責 view 相關的繪製以及載入功能。我們也會在 activity 中直接做一些資料載入相關的工作,最簡單的,比如直接 new thread 去請求資料了,資料請求回來,直接用 handler 傳送到 ui thread 中,進行 view 的更新。當然,這樣做在當時是很方便的。

抽象了乙個 view 的介面,抽象出各個 show 方法,對布局中的 view 的不同操作都有,非常的細

抽象乙個 presenter 介面,簡單來說是通過網路也好,本地也好,獲取資料。它持有 view 物件的引用,可以呼叫 view 相關的顯示方法。presenter 執行完資料處理後,把資料傳給 view 相關的方法中,或者呼叫 view 相關的方法。

activity 現在的職責很簡單,至少從**來看,只有 findviewbyid,初始化 presenter,把二者關聯起來,implement view 的介面,實現 view 中的 show 方法,把資料展示在相關的 view 中。

不過我發現,以前用 mvc 模式時,應用類分包時,挺適合同一類放在乙個包下,比如各個 fragment 都放在 fragment 包下。而 mvp 適合按功能分,比如 [個人],就把 [個人] 這個功能模組的 activity,presenter,view 介面全部放到 person 這個包下。當然一些通用的 utils 類就放到 utils 包下即可。

簡單來看就是將 activity 原來臃腫的**進行了一次分離,讓 activity 單單去顯示資料。資料請求等操作放到 presenter 中去了。

Android MVP和MVC和MVVM模式區別

1 mvp模式 比較常用的模式 1.資料模型 model 業務邏輯和實體模型,用來操作實際的資料,包含bean和model的抽象介面來降低耦合。2.檢視 view 就是android中的檢視,需要建立乙個view的抽象介面view inte ce。通過實現view的介面來實現view與present...

Android MVP模式 簡單易懂的介紹方式

android mvp 模式1 也不是什麼新鮮的東西了,我在自己的專案裡也普遍地使用了這個設計模式。當專案越來越龐大 複雜,參與的研發人員越來越多的時候,mvp 模式的優勢就充分顯示出來了。public class loginactivity extends actionbaractivity im...

我理解的遞迴

1.在遞迴呼叫工作棧建立之後,各層遞迴所涉及到的變數都已經壓入到棧中,每次呼叫一次函式,系統記憶體機制就會以棧的方式分配該遞迴函式所需的記憶體空間,同時,每層函式得出的結果會暫時儲存在這個棧的空間中 2.當整個遞迴函式在遇到已if 為標誌的條件結束標誌的時候,函式不需要繼續執行該函式,系統停止記憶體...