尝试使用MVVM开发模式,让程序解耦。

MVVM开发模式图:


优势

  1. 模型与视图完全分离,我们可以修改视图而不影响模型;
  2. 可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部;
  3. 我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁;
  4. 如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)。

MVVM包含三个部分

  1. Model--表示你的业务逻辑
  2. View--显示的内容
  3. ViewModel--把View和Model联系起来

简易的MVP模式:

包含以下个关键类,针对接口编程

  1. IEntity
  2. IEntityBiz
  3. IMvpView
  4. IPresenter
  5. BasePresenter
  6. 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框架相关推荐

  1. Android MVP框架学习

    什么是MVP框架 做Android开发也有好几年时间了,最近接触了Android开发的MVP模式,MVP即Model.View.Presenter的缩写.如果有过一些项目开发经验的人,在项目功能越来越 ...

  2. Android MVP框架MVPro的使用和源码分析

    最近看了两篇关于Android实现MVP的文章一种在android中实现MVP模式的新思路和用MVP架构开发Android应用. 两篇文章的思路都是一样的,即把Activity.Fragment作为P ...

  3. Android MVP框架实现过程

    MVP框架实现过程 目的:View层和Model层分离,中间由Presenter处理逻辑. Prester作为View与Model交互的中间纽带,处理与用户交互的负责逻辑.这里我们只说明View和Pr ...

  4. Android MVP 框架

    为什么80%的码农都做不了架构师?>>>    前言 根据网络上的MVP套路写了一个辣鸡MVP DEMO 用到的 android studio MVPHelper插件,方便自动生成框 ...

  5. android mvp框架基类,Android MVP架构项目搭建封装,基类封装

    综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构 ...

  6. Android MVP框架搭建

    1. 自定义全局配置文件 创建全局自定义配置文件 config.gradle,拆分配置,便于依赖引用管理: 全局 build.gradle 引入自定义配置文件 2. 创建common module, ...

  7. Android MVP 详解(上)

    作者:李旺成 时间:2016年4月3日 "Android MVP 详解(下)"已经发布,欢迎大家提建议. MVP 在 Android 上的使用其实已经有挺长一段时间了,长到似乎有点 ...

  8. android 最新框架组合,android 官方mvp框架优化:lifecycle-mvp,像前端那样组合式写页面...

    目录 1 前言 虽然在标题上,自己很随意的起了这么一个名字.其实并不是说它起个英文名就牛逼了.说白了,它其实就是mvp的思想加了lifecycle-component,然后加入了分层的思想,最后用Ty ...

  9. Android MVP伴侣,Nucleus框架使用简介

    Neclues是一款基于MVP框架的Android Library, 它合理地将程序中的可视化界面和后台线程联系起来. 如果你还不了解MVP框架,请点击查看详情 框架介绍 我们在应用中使用MVP和Rx ...

最新文章

  1. 如何让两个div在同一行显示?一个float搞定
  2. Django 和 Ajax 简介
  3. Android用户界面开发(2):ListView
  4. redis便捷启动,shell启动redis
  5. 浅谈游戏单位属性模块设计:属性组成、分级、计算与同步
  6. 极简版 卸载 home 扩充 根分区--centos7 xfs 文件格式
  7. 再起航,我的学习笔记之JavaScript设计模式23(中介者模式)
  8. 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接(转载)
  9. python调用数据库存储过程_python调用MySql存储过程
  10. android对话框合集AlertDialog
  11. 自动化测试 短信验证登录
  12. 2.查看conv卷积的函数实现过程,原理,试用c语言编写调试.,西南科技大学信号与系实验报告.doc...
  13. 【React Native 安卓开发】----(Flexbox布局)【第二篇】
  14. Confluence 6 附件存储提取文本文件
  15. Failed to parse the output of 'adb version'
  16. 将Python对象转换成字典
  17. 修改devcpp5.11的语言选项
  18. 项目验收文档模板(四)
  19. java rx3x_GitHub - xkm123/oss-sdk-java: java sdk for oss
  20. 计算机基础教程 试题,《计算机基础教程》考试试题及答案

热门文章

  1. 只要你能想明白一个道理,你也可以在互联网上赚到属于自己的钱
  2. 今天tiktok小社群更新 第5个项目行业案例
  3. 巴菲特投资50年的5个心得
  4. 怎样看win10是不是永久激活的?
  5. 假如Python有C/C++ 的性能,会不会称霸IT界?
  6. 码元、波特、速率、带宽
  7. 2.2.2 物理层设备(中继器、集线器)(转载)
  8. Java中@WebServlet的使用方法
  9. 在SQL Server中导入和使用CSV文件
  10. sql存储过程编写_您可以针对任何存储过程编写三个标准SQL单元测试