MVP 模式在Android中的使用

2021-07-22 10:45:16 字數 1337 閱讀 8548

什麼是mvp

作為碼農你應該知道mvc(model view control)吧,如果不知道,請自行補腦。mvp(model view presenter)是mvc衍生而來的,mvp並不是乙個新玩意,很早以前就由某軟公司提出,近年來在android應用開發中越來越多的被提及,越來越重要了。本文簡單解介紹mvp的概念、為啥要使用mvp和在android中如何使用,最後介紹乙個android使用mvp的例子。

概念mvp,即 model view presenter,包含邏輯、檢視、presenter(作為檢視和邏輯的中間層,暫時找不到乙個合適的詞來翻譯)三個部分。mvp要求顯示層和邏輯層分離,view 發生變化時邏輯層(model)不用改變。

為啥使用mvp

介面需求千變萬化,而產品邏輯相對的穩定。這是android甚至其它移動應用的基本現象,所以邏輯和檢視的解藕變得很重要。之前有人問過我mvc在android中的應用,activity在是mvc中的哪乙個?其實回答這個問題有些尷尬的地方,activity在android系統中本來是用來呈現介面的乙個元件,而在android應用開發中又無不兼負著介面跳轉和資料訪問的職責(很多資料訪問邏輯的確是在activity中發生的),activity到底是view還是control還是二者兼具?不好回答。而mvp卻很好的解釋android檢視和邏輯的解藕。

如何在android中使用?

處於 view 和 model 之間,控制view的行為同時排程業務邏輯層的行為。這樣view和model不用直接互動。在android中我們可以建乙個***presenter類來負責這層。

毫無疑問,在android中activity是用來承載檢視的,但是我們希望圖的職責變得更加純淨,只負責顯示檢視,我們不希望activity和model有直接的聯絡,我門可以定義乙個view介面,在這個view中定義檢視行為的抽象,讓具體的activity來實現,所以這個activity要實現這個view,通常取名為***view。然後presenter持有這個view的引用從而能呼叫view的行為。

只負責應用的業務邏輯,例如資料請求或資料處理等,我們可以建乙個***manager類來負責這層。

乙個例子:mvp demo

說了那麼多,其實最重要的還是看demo,不然都很虛,例子是學習新東西的最好方式。 結尾

使用mvc模式來分離android應用的介面和業務邏輯不是一件容易的事,mvp在android應用解藕上卻很容易解釋。無論使用什麼樣的模式或方法構建應用,最終的目的都是為了提高**的可讀性、可維護性,冗長難懂的**可能會讓計算機編譯執行多耗幾毫秒,但是最要命的是解決乙個小bug卻花上幾個小時甚至幾天去理清**來解決。作為開發者我門大部分時間還是耗費在除錯、找bug上,而不是編碼,至於**設計,值得花時間去思考。

參考:**:mrllee

Android中的MVP模式

mvp簡介 model 業務邏輯和資料處理 資料庫儲存操作,網路資料請求,複雜演算法,耗時操作 view 對應於activity,負責view的繪製以及與使用者互動。presenter 負責完成view於model間的互動 責任劃分 model 定義並實現獲取資料操作 如資料庫讀取 網路載入 的介面...

android中的mvp模式(二)

1.需求,這個是 android開發必知的50個訣竅 一書中的mvp章節的需求。在splash頁面中,判斷是否有網路連線,有則跳到下個頁面,無則彈出一條訊息通知使用者,同時在檢查網路是否正常的期間顯示乙個進度條。2.類目錄結構 img 3.model介面和實現 public inte ce inet...

Android中Mvp與Mvc模式的區別

mvc簡介 使用mvc的目的是將m和v的實現 分離,從而使同乙個程式可以使用不同的表現形式。比如一批統計資料可以分別用柱狀圖 餅圖 來表示。c存在的目的則是確保m和v的同步,一旦m改變,v應該同步更新。mvc缺點 在mvc裡,view可以直接訪問model,從而view裡會包含model資訊,不可避...