MVP(Model View Presenter)模式是由MVC模式发展而来的,在如今的Android程序开发中显得越来越重要。本篇文章简单讨论了MVP模式的思想。

啥是MVP

MVP模式的主要思想是将程序的业务逻辑从表现层分离出来,理想情况下,MVP模式可以使得相同的逻辑拥有完全不同且可互换的views。

为啥要用MVP

在Android实际开发过程中,我们会遇到这样的问题:Android中的activity与界面展示和数据访问机制耦合度非常高,既负责页面组件的展示,又负责处理业务逻辑。一个极端的例子就是混合适配器CursorAapter,它既是view的一部分,却又带有cursor,应该放在数据访问层。

为了应用程序具有好的扩展性和可维护性,我们需要有好的架构分层设计。假如以后我们不再从数据库中取数据,而是从网络中获取数据,那么我们只好重新做一个view出来。

MVP分层架构可以使views与数据源相互分离,将业务逻辑从activity中分离出来,它将应用程序至少分为三个不同的层次,从而可以分开独立地调试程序。

怎么用MVP

MVP的架构并不是很死板的,不同的开发人员可以根据自己工程的需要,将MVP的思想运用在自己的项目中。

The presenter

Presenter作为View层和Model层的中间层,它负责根据业务逻辑从model层中检索数据并将其格式化,返回给View层。但是,它不像传统的MVC那样,它还负责响应你与View的交互。

The View

view层常常由activity来实现(也可以使Fragment,View等),它往往持有一个presenter的引用。通常情况下,通过引用注入的方式DI,可以完美地将presenter提供给view层调用。(例子Dagger)View层所要做的就是,通过该引用来调用presenter中的方法来完成对用户在界面操作的相应。

The model

model层是用来完成数据的提供服务。在一个分层架构良好的应用程序中,model层仅仅是作为业务逻辑层访问数据的一个入口。文章:Uncle Bob clean architecture

总结

在Android中将业务逻辑与界面分离并不是一件很容易的事儿,通过MVP的架构思想,我们试图减少activity中的代码量,这样做会使得我们的程序扩展性和可维护性更好。GitHub上关于MVP有一个很好的例子an MVP example on Github

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. 《Android开发从零开始》——25.数据存储(4)
  4. Android系统配置数据库注释(settings.db)
  5. Android中不同应用间实现SharedPreferences数据共享
  6. Android(安卓)的 supportdesign
  7. android图表ichartjs
  8. Android内容提供者源码
  9. android SharedPreferences

随机推荐

  1. Android打Jar包注意事项
  2. mac下反编译android apk
  3. android 打开微信扫一扫
  4. Android 系统名字、版本、API level的对
  5. android 打开GPS的几种方式
  6. android 播放Raw文件夹下的音乐文件
  7. android中APK开机自动运行
  8. Android重写SimpleCursorAdapter例子
  9. android中Notification的使用
  10. Android Studio出现Failed to open zip f