mvp开发实际操作

mvp模式可以很好的帮助我们解耦,充分的把事件和UI分开,这样的好处是当我们的UI由于各种讨厌的理由被改啊改啊,但是我们实现功能的地方都不用再去改动,只要新UI去实现就好了,下面开始非常简单的mvp

mvp 重要的类 

1:IXXView   xx表示你自己界面的名字  I 代表这是个接口

2:IXXPresente  同样的道理

3:Presenter 具体业务的实现者

4:View IXXView 的实现者就是你的activity fragment等等UI页面

5: Model 承载具体的数据,负责两者间的数据关联。


具体实现:

IPresenter

public interface IPresenter {
    void getContent();
}
 
IView
public interface IView {
    void showContent(Model model);
}
Model
public class Model {
    private String Content;

    public Model(String content) {
        Content = content;
    }

    public String getContent() {
        return Content;
    }

    public void setContent(String content) {
        Content = content;
    }
}
Presenter
public class Presenter implements IPresenter{
    IView iView;

    public Presenter(IView iView) {
        this.iView = iView;
    }


    @Override
    public void getContent() {
//    ...通过网络请求啦,多线程啦要做些事去拿到content内容然后将内容包裹在Model中,这里模拟的new一个。
        Model model = new Model("你好");//model其实就是你网络请求回来用Gson得到的类
        iView.showContent(model);
    }
}
View
public class View  extends Activity implements IView{
    Presenter mPresentr;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        mPresentr= new Presenter(this);
        mPresentr.getContent();//在你想获取内容的地方让presenter去获取内容。
    }


    @Override
    public void showContent(Model model) {
        //通过presenter不懈的努力终于拿到了内容并封装在model里了,这里就可以拿着model猥琐欲为了(界面随便变反正数据就在那里,不用再去改了)
    }
}
主要是
mPresentr= new Presenter(this);
这句话其实实例了两个接口对象,一个是presenter另一个就是IView因为View实现了IView所以View其实就是IView的一个实例
在Presenter中给IView赋值。
this.iView = iView;
好了,当然这只是个很简单的MVP模式实例,可以简单的实现界面解耦。但是使用MVP会带来类很多的问题,除非一个界面复杂而且内容多变
否则建议还是用MVC。



 












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值