MVP (一) 初次了解,什麼是MVP

2021-07-13 06:49:36 字數 3145 閱讀 9472

本文是這幾天學習的總結,大神別看了,像我一樣沒用過幾次的新司機可以看一下並指正錯誤。

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則實現讀取本地資料庫相關的操作...