由于公司一直都是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(主要就是干一件事,那就是登录)

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

其中View如下:
1、点击登录时显示一个dialog;
2、登录失败时弹出一个toast;
3、登录完成后关闭dialog;
4、登录成功后跳转到下一个Activity的方法。

再看看Model的实现类:
(初始化Model时传入一个Persenter,登录失败,成功都进行回调给Persenter)

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

最后就是Activity:
(oncreat时就初始化Persenter)
大功告成!!