Android MVP结构的初步认识
2015-11-06 12:07
316 查看
为什么需要MVP
MVP是MVC的一种衍生,MVP模式中不容许View直接访问Model,这是MVP与MVC最大的不同之处。View中应该只有UI逻辑,捕捉用户输入以及视图的渲染。这样将其它复杂的逻辑抽离出来放到Presenter中去,这样就出现了MVP。这种模式和传统的软件工程思想一样,降低了耦合度,模块化,更方便维护。Presenter通常是通过定义好的接口与View进行交互,那么开发的时候,只要写一个测试类去实现该接口即可模拟用户的各种操作进行测试,而不需要使用自动化测试工具。甚至可以不用再每次在手机上重新运行应用了,测试也更有效率。简单的说,就是将View中的复杂工作抽取到Presenter中,降低了耦合度,便于维护和测试,也增强了复用性。View不直接与Model交互,而是通过与Presenter交互来与Model间接交互。Presenter与View的交互是通过接口来进行的。通常View与Presenter是一对一的,但复杂的View可能绑定多个Presenter来处理逻辑。
View(Activity)只负责处理用户交互,并把数据相关的逻辑操作都交给了Presenter去做,而Presenter调用Model处理完数据之后,再通过View的抽象接口更新View显示的信息。这样就实现了完整的解耦UI与逻辑操作。
http://www.codeceo.com/article/mvp-android.html
相关文章推荐
- Android之Android studio如何解决Multiple dex files define Landroid/support/a(文件重复引用错误)
- Google宣布支持Vulkan作为Android的底层图形API
- Gallery自动循环滚动以及手动滚动的平滑切换
- AndroidSwipeLayout的使用(listview,gridview,view中滑动显示隐藏按钮的使用)
- Android 使用Fragment界面向下跳转并一级级返回
- 吃掉Android混淆——ProGuard第一篇
- Android 使用Fragment实现底部菜单栏
- android 遍历assert文件夹下的文件
- android toolbar
- Android开发之创建ActionBar
- Cannot reload AVD list:
- android中invalidate()的自动清屏含义以及屏幕刷新
- 使用Intent.ACTION_EDIT 调用系统编辑联系人
- Android开发&多媒体控件
- Android Mvvm入门教程
- android中 AIDL的使用
- Android NOTE
- 解决Android的TextView排版问题
- android:gravity与android:layout_gravity的区别,以及代码设置对应属性
- android自定义带返回功能的标题