M:Model 层,用于对数据模型操作,IO 操作也在此层
V:View 层,用于交互操作以及数据的显示,传统的 activity 属于此层
P:Presenter 主持层,拥有 M 和 V 层接口,实现 M 和 V 通信的相关逻辑
MVP 架构的实现:
一、定义各层接口要实现的方法
二、定义各层的类实现接口的方法
三、初始化时传递自身接口来形成连接
四、通过传递的接口来调用类的方法,进行传参或实现
示例
定义各接口:
public interface TestContract {
interface View {
// 显示数据
void showData(String str);
}
interface Presenter {
// 通知 model 要获取数据并把 model 返回的数据交给 view 层
void getData();
}
interface Model {
// 获取数据
String doData();
}
}
M 层类:
public class TestModel implements TestContract.Model {
private static TestModel model;
public static TestModel getInstance() {
if (model == null) {
model = new TestModel();
}
return model;
}
@Override
public String doData() {
return "mvp 架构";
}
}
P 层类:
public class TestPresenter implements TestContract.Presenter {
private TestContract.Model model;
private TestContract.View view;
public TestPresenter(TestContract.Model model, TestContract.View view) {
this.model = model;
this.view = view;
}
@Override
public void getData() {
view.showData(model.doData());
}
}
V 层类 & 实现函数:
public class TestView implements TestContract.View {
public TestContract.Presenter presenter = new TestPresenter(TestModel.getInstance(), this);
@Override
public void showData(String str) {
System.out.println(str);
}
public static void main(String[] args) {
TestView tv = new TestView();
tv.presenter.getData(); // mvp 架构
}
}
Android MVP 十分钟入门!
ANDROID MVP 模式 简单易懂的介绍方式
MVP架构开发,一篇让你从看懂到会使用