android mvp简书,Android_MVP学习
MVP是模型(Model)、視圖(View)、主持人(Presenter)的縮寫,分別代表項目中3個不同的模塊。
模型(Model):負責處理數據的加載或者存儲,比如從網絡或本地數據庫獲取數據等;
視圖(View):負責界面數據的展示,與用戶進行交互,主要是指Fragment ,Activity;
主持人(Presenter):相當于協調者,是模型與視圖之間的橋梁,將模型與視圖分離開來;
View層與Model層并不直接交互,而是使用Presenter作為View與Model之間的橋梁。其中Presenter中同時持有Viwe層以及Model層的Interface的引用,而View層持有Presenter層Interface的引用。當View層某個界面需要展示某些數據的時候,首先會調用Presenter層的某個接口,然后Presenter層會調用Model層請求數據,當Model層數據加載成功之后會調用Presenter層的回調方法通知Presenter層數據加載完畢,最后Presenter層再調用View層的接口將加載后的數據展示給用戶。這就是MVP模式的整個核心過程。
這樣分層的好處就是大大減少了Model與View層之間的耦合度。一方面可以使得View層和Model層單獨開發與測試,互不依賴。另一方面Model層可以封裝復用,可以極大的減少代碼量。
-????View發生改變,不影響model
-????model發生改變,不影響View
-????presenter發生改變,只需要改persenter
下面是用MVP模擬登陸的一個簡單Demo:
首先是V層接口,里面寫了獲取賬號密碼,登陸成功和失敗四個方法,它需要到Activity或者Fragment中去實現。
然后到我們的M層接口,接口回調提高了代碼的復用性,CallBacks里是我們的成功失敗方法:。
寫完Model的接口之后,要去Model類里實現我們的接口,進行一個簡單的賬號密碼匹配,如果匹配成功返回我們CallBacks里邊的成功方法,然后傳入參數。
然后重要的P層,P層需要持有M和V層,然后讓它們進行關聯,V層的onGetName,onGetPassword方法把賬號密碼傳給M層讓之進行匹配。利用callbacks把參數傳給我們的V層。
最后到我們的Activity中,繼承View接口,實現View的方法。我們還需要調用P層的方法才可以 。
這是View層的實現類。重寫了V層的方法。
這樣一個簡單的Demo就實現了。
總結
以上是生活随笔為你收集整理的android mvp简书,Android_MVP学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html左侧td字体居右,如何在td中控
- 下一篇: 文件不混淆_Android Studio