Android MVP 简单理解

MVP框架实现了视图的完全解耦
M:model 数据曾
V:view 视图层
P:presenter 主持人  model和view的中介者

下面是一个简单demo将一个字符串展示textview
demo结构:


Model层数据处理,例如网络加载数据,后台请求数据等,这里为了简单明了直接给一个字符串:

public class Model  {
    IPresenter ipresenter;//得到Presenter接口

    public Model(IPresenter ipresenter) {
        this.ipresenter = ipresenter;
    }

    /**
     * 数据处理方法,这里默认处理成功得到的数据为“下载成功”
     * 并将处理的数据交给persenter
     */
    public void loadDate(){

        ipresenter.loadDataSuccess("下载成功");
     }


}
View层:ImainView接口
public interface IMainView {

    void showText(String s);

}


public class MainActivity extends AppCompatActivity  implements IMainView{
   TextView mytext;
   Presenter presenter = new Presenter(this);//获得persenter对象
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mytext = findViewById(R.id.mytext);
        presenter.LoadDate();//调用persenter的loadDate方法通知数据处理
    }

    /**
     * 获得数据并展示到textview
     * @param s
     */
    @Override
    public void showText(String s) {
        mytext.setText(s);
    }
}
Persenter:拥有Model和IMainView对象,中间逻辑处理
public class Presenter implements IPresenter{
  Model model;
  IMainView iMainView;

    public Presenter(IMainView view) {
        this.model = new Model(this);
        iMainView = view;
    }
    public void LoadDate(){
        model.loadDate();//通知Model处理数据
    }
//如果数据处理成功,将得到的数据传给view
    @Override
    public void loadDataSuccess(String s) {
        iMainView.showText(s);
    }
}
persenter接口:

public interface IPresenter {

 void loadDataSuccess(String s);


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值