如何实现MVP架构
来源:互联网 发布:淘宝要交多少保证金 编辑:程序博客网 时间:2024/05/01 22:39
MVP即Model—View—Presenter,从经典的设计模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。MVP架构的重点在于面向接口编程,通过接口将单一职能的Model 和 View联系起来
说起来容易做起来难,如何才能使用一个MVP架构呢?
1、Model对外暴露的接口:interface IGirlModel
public interface IGirlModel { void loadGirl(OnGirlLoadCompleter onGirlLoadCompleter); interface OnGirlLoadCompleter{ void onCompleter(List<Girl> girlList); }}
View对外暴露的接口:interface IGirlView
public interface IGirlView { void showProgress(); void showGirl(List<Girl> girlList);}
Presenter业务逻辑控制类,持有Model和View的引用,否则如何关联?
public class IGirlPresenter { //View Interface IGirlModel iGirlModel = new GirlModelImpl(); //Model Interface IGirlView iGirlView; public IGirlPresenter(IGirlView iGirlView){ super(); this.iGirlView =iGirlView; }
2、创建IGirlModel的实现类IGirlModelImpl
public class GirlModelImpl implements IGirlModel { @Override public void loadGirl(OnGirlLoadCompleter onGirlLoadCompleter) { 加载数据 } }}
在Activity中实现IGirlView接口
public class MainActivity extends Activity implements IGirlView{ private ListView listView; private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.content_main); listView = (ListView) findViewById(R.id.listView); myAdapter = new MyAdapter(this); listView.setAdapter(myAdapter); } @Override public void showProgress() { } @Override public void showGirl(List<Girl> girlList) { myAdapter.setData(girlList); }}
3、在IPresenter中定义一个方法将IGirModel和IGirlView关联起来
public void fetch(){ if(iGirlView!=null){ iGirlView.showProgress(); iGirlModel.loadGirl(new IGirlModel.OnGirlLoadCompleter() { @Override public void onCompleter(List<Girl> girlList) { iGirlView.showGirl(girlList); } }); } }
4、在IGirlView的实现类中调用Ipresenter中关联的方法,将IGirlModel中接口请求回来通过接口暴露出的数据在IGirView实现类中展示
new IGirlPresenter(this).fetch();
如此我们便做到了IGirlModel请求数据,通过接口向外暴露,IGirlView展示数据,IPresenter持有二者的引用,将二者联系起来。这就是一个简单的MVP架构设计,是不是很简单啊,赶紧去学习吧!
0 0
- 如何实现MVP架构
- MVP架构基本实现
- Android MVP设计架构实现
- MVP架构的简单实现
- 如何使用MVP架构Android应用项目
- 如何一步一步写出MVP架构的代码
- Android应用架构之MVP实现
- Android应用架构之MVP实现
- 使用Rxjava的MVP架构实现
- MVP架构的理解与实现Demo
- ANDROID应用架构之MVP实现
- ANDROID应用架构之MVP实现
- Android中的MVP架构分解和实现
- MVP架构
- MVP架构
- MVP架构
- MVP架构
- MVP架构
- 通往互联网架构师之路---全栈工程师
- 在simulink中使用全局变量的方法
- 第一章 Java概述
- meteor框架学习心得
- centos yum源(网易163)
- 如何实现MVP架构
- 关于IDEA-MAVEN-Strtus-Hibernate的配置
- Matlab 2016a 安装及破解方法
- POJ2365【几何】
- 反汇编C++ OOP代码 分析构造函数如何被调用 以及简单的C++对象内存模型
- Dubbo
- Leetcode题解 120. Triangle
- mysql 集合操作UNION DISTINCT和UNION ALL
- python中的列表(list)详解