本文是這幾天學習的總結,大神別看了,像我一樣沒用過幾次的新司機可以看一下並指正錯誤。
mvp介紹: 簡單明瞭的理解:p-presenter:主持者,擔當了資訊傳遞的指揮者(同mvc的c);v-view :負責檢視的控制:獲取介面的資料,為介面載入資料,彈出toast、跳轉介面等(入行以來,我直接把activity作為v層,總覺得這樣不妥,今天終於明白了);model : 與mvc一樣資料資料模型,展示資料結構,但是通過這幾天的學習,我發現老司機們都把資料處理的**歸於m層,這也是與mvc不同的,沒有把資料處理放到p層進行判斷而是傳到了m層;
邏輯路線(開車了,注意繫好安全帶): 結合**講解,先看一下導航
知道路就開車了 嗚嗚嗚嗚嗚~
今天我就一反常態,大神們寫的都是從分支到主幹放**,我就用逆向思維放**吧,需要實現的介面什麼的就緊隨其後。
這是登入介面
<?xml version="1.0" encoding="utf-8"?>
這是activity
package com.czh.demo_mvp;
import android.content.intent;
import android.os.bundle;
import android.util.log;
import android.view.view;
import android.widget.button;
import android.widget.edittext;
import android.widget.toast;
import com.czh.demo_mvp.presenter.loginpresenter;
import com.czh.demo_mvp.view.loginview;
import butterknife.bindview;
import butterknife.butterknife;
public class loginactivity extends activity implements loginview, view.onclicklistener
});}
@override
public void toindex()
@override
public void showtoast(string msg)
@override
public string getname()
@override
public string getpass()
@override
public void onclick(view v) }}
在act中實現了v層介面,為了與act互動資料,做到了檢視操作與activity的解耦
/**
* 處理檢視
* created by administrator on 2016/6/8.
*/public inte***ce loginview
以上的line37 呼叫了p層的登入操作 見如下line21 ,line21 的登入函式 ,又呼叫了act中重寫的v層的方法,使用v層來獲取資料 完美的解耦,並觸發m層的觀察者模式onmyloginlistenr。。
line24 呼叫m層的登入函式(說實話這個我做的不妥,將p層和m層的登入函式用了相同的函式名..),將登入資訊傳到了m層(實際開發中,m層應該會將資料封裝物件),
package com.czh.demo_mvp.presenter;
import com.czh.demo_mvp.model.loginmodel;
import com.czh.demo_mvp.model.onmyloginlistenr;
import com.czh.demo_mvp.model.imple.loginmodelimp;
import com.czh.demo_mvp.view.loginview;
/** * 通過v層與介面互動資料-將從v層獲取的資料傳給m層-觸發觀察者模式
* created by administrator on 2016/6/8.
*/public class loginpresenter implements onmyloginlistenr
public void login()
// 觀察者模式接收反饋的結果 並通過v層與使用者進行溝通
@override
public void onsuccesslogin()
@override
public void onfailedlogin()
}
m層觀察者
/**
* 登入監聽
* created by administrator on 2016/6/8.
*/public inte***ce onmyloginlistenr
m層資料處理的邏輯(在以前的mvc模式中我都是放在c層處理..)
/**
* 登入介面 內含方法
* created by administrator on 2016/6/8.
*/public inte***ce loginmodel
實現類
package com.czh.demo_mvp.model.imple;
import com.czh.demo_mvp.model.loginmodel;
import com.czh.demo_mvp.model.onmyloginlistenr;
/** * 處理邏輯-反饋結果
* created by administrator on 2016/6/8.
*/public class loginmodelimp implements loginmodel else }}
15行資料處理結束後,觸發了在p層實現的***,見loginpresenter的26行起;
***又通過v層的函式 ,對介面進行控制,顯示登入結果、提示等。到此,mvp的執行就完成了,附自己畫的醒腦流程圖...
什麼是MVP模式
mvp model view presenter 是mvc模式的改良,由ibm的子公司taligent提出。和mvc的相同之處在於 controller presenter負責業務邏輯,model管理資料,view負責顯示。1.各部分之間的通訊,都是雙向的.view presenter model ...
產品經理告訴你什麼是PMF 什麼是MVP?
pmf指的是產品與市場匹配的產品 1.如何判斷pmf的臨界點?1 留存 30 的新使用者次日留存 2 新增使用者dau 大於100 3 使用者數 10萬使用者數 dau 單日活躍使用者量,反應產品短期使用者活躍度 2.pmf幾種型別 1 更好體驗的產品,如美圖秀秀 2 抓住細分市場,如uber p2...
關於MVP的一些簡單了解
步驟 1.activity中建立persenter物件,實現view介面,向persenter下達操作命令 2.persenter類繼承persenter介面實現類 實現類主要處理一些基本邏輯 建立model物件,傳入自身例項,呼叫model中的邏輯方法 3.model則實現讀取本地資料庫相關的操作...