【第22期】观点:IT 行业加班,到底有没有价值?

MVP简单示例

原创 2016年08月28日 17:32:34

MVP简单示例

本人菜鸟,可能理解和注解有误,请多担待

MVP多基于接口回调

示例

这里写图片描述
如图所示,MVP模式中需要使用的三个包,分别是model-view-presenter,他们的功能分别是:
- model:用于存放与数据处理有关的类
- view:用于存放于视图处理有关的类
- presenter:顾名思义,主持人,用来桥接处理类和视图类的类

1)model
其中包括有Model接口和一个实现该接口的UserModel类,他们的具体内容如下:

Model.class

public interface Model {
    void getData(Qiao qiao);//该方法功能为在其他的类中调用回调接口
    interface Qiao{//这个接口就是函数回调,我理解为一个用来传递数据的桥
        void qiao(List list);
    }
}

UserModel.class

public class UserModel implements Model {//实现model接口
    @Override
    public void getData(Qiao qiao) {
    //以下代码是一个数据源,即为数据的处理
        ArrayList<Integer> strings = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            strings.add(i);
        }
        //将数据源传入到qiao方法中,用于将其传入到其他的类中
        qiao.qiao(strings);
    }
}

2)view
其中包括有一个View接口和实现了该类的MainActivity类,具体内容如下:
View.class

public interface View {
    void showView(List list);//定义一个协议,该实现类都需遵循该协议
}

MainActivity.class

public class MainActivity implements View{//实现View接口

    public static void main(String[] args) {
        MainActivity mainActivity = new MainActivity();
        new Presenter(mainActivity).laod();
    }

    @Override
    public void showView(List list) {//showView方法的具体实现,即为数据的显示
        for(Object i : list){
            int num = (int) i;
            System.out.println(num);
        }
    }
}

3)presenter
其中只有一个用于桥接view和model的Presenter类,具体情况如下:
Presenter.class

public class Presenter {
//分别将Model和View的实现类传入该函数中
    private Model model;
    private View view;

    public Presenter(View view) {
        this.view = view;
        model = new UserModel();
    }

    public void laod(){
        model.getData(new Model.Qiao() {//重写Qiao函数
            @Override
            public void qiao(List list) {
                view.showView(list);//调用view的showView方法,并将数据传入其中
            }
        });
    }
}

注:该例子是用纯java写的,不是用Android写的

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Android中Mvp模式的简单示例

感谢 吴小龙同学 关于MVP模式的文章:http://wuxiaolong.me/2015/09/23/AndroidMVPSample/ 作为一个初学者,根据自己的理解在此基础上省略了一些可能会干扰...

.NET、C#与Silverlight开发圣典——分享15位MVP的最佳实践经验

《.NET、C#与Silverlight开发圣典——分享15位MVP的最佳实践经验》基本信息原书名:Real World .NET 4, C#, and Silverlight:lndispensible Experiences from 15 MVPs作者: [美]Dominick Baier Bill Evjen Gyorgy Balassy [作译者介绍]译者: 王净 范园芳 李卉出版社:清华大学出版社ISBN:9787302299950上架时间:2012-10-19出版日期:2012 年10月开本:16开<b

一个简单登陆示例的MVC和MVP实现

登录示例:MVC 自上篇《iOS基于MVC的项目重构》总结之后,我又思考了下面这个问题:在UIKit自身的设计中UIViewController是被当做C还是V呢? 例如我们点击View上...

专访顾伟:从机械工程师到资深软件工程师、再到微软MVP的蜕变

原文:http://www.csdn.net/article/2014-05-27/2819954。 &lt;iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2014-05

简单的mvp+retrofit+rxjava示例

最近喜欢上了mvp,所以也学习了网站上别人的mvp自己写了一个简易的mvp,我不太确定我这是不是标准的mvp,但我感觉分离的挺开的。 这里的mvp我是结合了retrofit+rxjava,全是简易的...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)