android MVP框架
尝试使用MVVM开发模式,让程序解耦。
MVVM开发模式图:
优势
- 模型与视图完全分离,我们可以修改视图而不影响模型;
- 可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部;
- 我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁;
如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)。
MVVM包含三个部分
- Model--表示你的业务逻辑
- View--显示的内容
- ViewModel--把View和Model联系起来
简易的MVP模式:
包含以下个关键类,针对接口编程
- IEntity
- IEntityBiz
- IMvpView
- IPresenter
- BasePresenter
- EntityPresenter
//model层,不与View交互
public interface IEntity {public void setValue(Object obj);public Object getValue();
}//逻辑层,主要处理model逻辑
public interface IEntityBiz{public void common(IEntity item);
}//Mvp框架View都需要继承这个接口
public interface IMvpView{public String getTextViewValue();
}//管理者接口
public interface IPresenter<V extends IMvpView>{public void attachView(V view);public void detachView();
}//管理者基类
public class BasePresenter<V extends MvpView> implements Presenter<V> {private WeakReference<V> viewRef;@Override public void attachView(V view) {viewRef = new WeakReference<V>(view);}@Nullablepublic V getView() {return viewRef == null ? null : viewRef.get();}public boolean isViewAttached() {return viewRef != null && viewRef.get() != null;}@Override public void detachView(boolean retainInstance) {if (viewRef != null) {viewRef.clear();viewRef = null;}}
}//管理者类
public class EntityPresenter extends BasePresenter<IMvpView>{private IMvpView v;private IEntityBiz biz;private IEntity data;//处理逻辑public void doSomeThing(){//TODO}
}
(http://blog.csdn.net/lmj623565791/article/details/46596109)
转载于:https://www.cnblogs.com/zuizui2015/p/4977219.html
android MVP框架相关推荐
- Android MVP框架学习
什么是MVP框架 做Android开发也有好几年时间了,最近接触了Android开发的MVP模式,MVP即Model.View.Presenter的缩写.如果有过一些项目开发经验的人,在项目功能越来越 ...
- Android MVP框架MVPro的使用和源码分析
最近看了两篇关于Android实现MVP的文章一种在android中实现MVP模式的新思路和用MVP架构开发Android应用. 两篇文章的思路都是一样的,即把Activity.Fragment作为P ...
- Android MVP框架实现过程
MVP框架实现过程 目的:View层和Model层分离,中间由Presenter处理逻辑. Prester作为View与Model交互的中间纽带,处理与用户交互的负责逻辑.这里我们只说明View和Pr ...
- Android MVP 框架
为什么80%的码农都做不了架构师?>>> 前言 根据网络上的MVP套路写了一个辣鸡MVP DEMO 用到的 android studio MVPHelper插件,方便自动生成框 ...
- android mvp框架基类,Android MVP架构项目搭建封装,基类封装
综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构 ...
- Android MVP框架搭建
1. 自定义全局配置文件 创建全局自定义配置文件 config.gradle,拆分配置,便于依赖引用管理: 全局 build.gradle 引入自定义配置文件 2. 创建common module, ...
- Android MVP 详解(上)
作者:李旺成 时间:2016年4月3日 "Android MVP 详解(下)"已经发布,欢迎大家提建议. MVP 在 Android 上的使用其实已经有挺长一段时间了,长到似乎有点 ...
- android 最新框架组合,android 官方mvp框架优化:lifecycle-mvp,像前端那样组合式写页面...
目录 1 前言 虽然在标题上,自己很随意的起了这么一个名字.其实并不是说它起个英文名就牛逼了.说白了,它其实就是mvp的思想加了lifecycle-component,然后加入了分层的思想,最后用Ty ...
- Android MVP伴侣,Nucleus框架使用简介
Neclues是一款基于MVP框架的Android Library, 它合理地将程序中的可视化界面和后台线程联系起来. 如果你还不了解MVP框架,请点击查看详情 框架介绍 我们在应用中使用MVP和Rx ...
最新文章
- 如何让两个div在同一行显示?一个float搞定
- Django 和 Ajax 简介
- Android用户界面开发(2):ListView
- redis便捷启动,shell启动redis
- 浅谈游戏单位属性模块设计:属性组成、分级、计算与同步
- 极简版 卸载 home 扩充 根分区--centos7 xfs 文件格式
- 再起航,我的学习笔记之JavaScript设计模式23(中介者模式)
- 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接(转载)
- python调用数据库存储过程_python调用MySql存储过程
- android对话框合集AlertDialog
- 自动化测试 短信验证登录
- 2.查看conv卷积的函数实现过程,原理,试用c语言编写调试.,西南科技大学信号与系实验报告.doc...
- 【React Native 安卓开发】----(Flexbox布局)【第二篇】
- Confluence 6 附件存储提取文本文件
- Failed to parse the output of 'adb version'
- 将Python对象转换成字典
- 修改devcpp5.11的语言选项
- 项目验收文档模板(四)
- java rx3x_GitHub - xkm123/oss-sdk-java: java sdk for oss
- 计算机基础教程 试题,《计算机基础教程》考试试题及答案