Mvp入门Demo

由于公司一直都是MVC,代码各种落后,一直想学习下MVP,所有就写了这篇文章,记录自己的理解与Demo(写的有问题的地方,欢迎指点,谢谢

一个登录的源码

1、M--> Model,对应逻辑处理的地方,处理完后,通过Persenter(相当于一个纽带,连接Model和View的一个中间桥梁)进行回调。

2、V-->View,就是Activity/Fragment去实现这个接口,并且实现其中这个View的方法。

3、P-->Persenter,就是Model和View的一个纽带,创建Persenter是传入一个Activity(这个Activity其实就是实现了View的接口,然后在初始化Persenter的时候创建一个Model,此时Persenter就把View和Model就连接起来了)。

根目录

以下以一个登录为例:

首先Model(主要就是干一件事,那就是登录)

BaseModel

然后就是Persenter和View

其中persenter如下:

(因为Persenter是一个纽带,那么从点击登录时,需要将帐号和密码传递到Model中去,所有此时Persenter就需要一个login(String userName,String password)的一个方法),其中loginSucc()和loginFail()都是回调给View层,VIew会收到通知,更新Ui。

BasePersenter

其中View如下:

1、点击登录时显示一个dialog;

2、登录失败时弹出一个toast;

3、登录完成后关闭dialog;

4、登录成功后跳转到下一个Activity的方法。

BaseView

再看看Model的实现类:

(初始化Model时传入一个Persenter,登录失败,成功都进行回调给Persenter)


LoginModel

再看看Persenter:

(初始化Persenter时传入一个View,并且初始化Model),login(String userName,String password)就是显示dialog和Model调用登录,loginSucc()和loginFail(String msg)就回调给VIew。

LoginPersenter

最后就是Activity:

(oncreat时就初始化Persenter)


大功告成!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,730评论 0 17
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,803评论 1 32
  • 第一章:Activity生命周期和启动模式 Activity关闭时会调用onPause()和onStop(),如果...
    loneyzhou阅读 4,500评论 0 2
  • 给大家推荐几个网站,是我工作和生活中经常使用的一些网站。 电影资源网站 电影港:http://www.dygang...
    跑来跑去的强子阅读 22,591评论 1 37
  • 线程封闭 把对象封装在一个线程里,只有这一个线程能看到这个对象,就算这个对象不是线程安全的,也不会出现线程安全的问...
    乌鲁木齐001号程序员阅读 1,787评论 0 1