关于mvp模式的simplenews项目学习(mvp模式解析)
来源:互联网 发布:mysql max 日期 编辑:程序博客网 时间:2024/06/05 11:03
一、mvp和mvc
MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller。
在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,及View。所以,在MVC模型里,Model不依赖于View,但是View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的
二、mvp雨mvc的区别
无论MVC或是MVP模式都不可避免地存在一个弊端:
这就导致了这两种开发模式也许并不是很小型应用。
但比起他们的优点,这点弊端基本可以忽略了:
(1)降低耦合度
(2)模块职责划分明显
(3)利于测试驱动开发
(4)代码复用
(5)隐藏数据
(6)代码灵活性
MVP模式:
- view不直接与model交互,而是通过与Presenter交互来与Model间接交互
- Presenter与View的交互是通过接口来进行的,更有利于添加单元测试
- 通常View与Presenter是一对一的,但复杂的View可能绑定多个Presenter来处理逻辑
MVC模式:
- View可以与Model直接交互
- Controller是基于行为的,并且可以被多个View共享
- 可以负责决定显示哪个View
- 弊端:当项目维护时间长了代码量太臃肿
mvc结构图
mvp结构图
根据mvp和Material Desgin的学习来完成一个smimplenews的小demo
0 0
- 关于mvp模式的simplenews项目学习(mvp模式解析)
- SimpleNews- Android MVP模式学习
- MVP模式的学习
- Android项目的MVP模式
- Android MVP模式的学习
- 学习android的MVP模式
- MVP 模式实例解析
- MVP 模式实例解析
- MVP 模式实例解析
- MVP模式解析实践
- Android当中的MVP模式(七)终篇---关于对MVP模式中代码臃肿
- MVP模式学习
- MVP模式学习
- android:MVP模式学习
- Retrofit+MVP模式学习
- 初次学习MVP模式
- MVP模式学习笔记
- 学习一下MVP模式
- 一次mysql slave故障的解决过程
- socket收发数据
- CDH的Flume配置Adding multiple flows in an agent
- Ajax跨域请求
- AlloyTouch之无限循环select插件
- 关于mvp模式的simplenews项目学习(mvp模式解析)
- RxCache要点解读(四)
- 给定一字符串S,请编程输出最长的连续数字串。(此题有坑)
- socket客户端接收信息被堵塞
- Ubuntu 16.04 LTS 安装Theano配置GPU
- C++ vector动态数组常用函数
- 一些我面试过程中遇到j2ee知识点的整理,答案来源于网络
- 389. Find the Difference
- java字符串基本操作