为什么使用MVP模式:
说到MVP就不得不提一下MVC,因为MVP模式就是由经典的MVC模式演变过来的。其实我们日常开发中的Activity,Fragment和XML界面就是一个MVC的架构模式。
下面是MVC模式的架构图:
从图中,我们可以看出MVC模式的缺点:
1.没有将View和Model剥离开来,View和Model的耦合性太强。Activity既要负责View的展示,又要负责业务逻辑的处理,这样处理违背了我们设计模式的单一职责原则,会导致Activity过于臃肿。
2.有些地方逻辑处理是一样的,但是无奈和Activity的耦合性太强,无法实现复用。
而我们的MVP就是为了解决这些问题而诞生的。
MVP模式介绍:
在MVP架构中,把View层和Model层真正的剥离开来了。
View层只负责UI的展示(Activity、Fragment等)
Presenter为业务处理层,负责业务逻辑的处理,既能调用View层进行UI的更新,又能从Model层获取数据。
Model层:包含具体的数据请求,数据源。
下面我们看看MVP模式的代码实现:
1.先看下我的demo文件目录:
(1)首先为View写一个通用的接口
public interface NewsView {
void showProgress();
void addNews(List<NewsBean> newsList);
void hideProgress();
void showLoadFailMsg();
}
(1.1)并让相应的View实现这个接口
public class NewsListFragment extends Fragment implements NewsView {
@Override
public void showProgress() {
}
@Override
public void addNews(List<NewsBean> newsList) {
}
@Override
public void hideProgress() {
}
@Override
public v