准备☞Android MVC、MVP、MVVM 架构的区别和优点 缺点

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ghost_tal/article/details/82052377

MVC 、MVP 和 MVVM 三种架构的区别和优缺点

MVC的特点

1 用户可以向View发送指令,再由View要求Model改变状态
2 用户也可以直接向Controller发送指令,再由Controller发送给View
3 Controller起到事件路由的作用,业务逻辑都部署在Controller里

MVC 优点

1 耦合性低,视图层和业务层分离,这样允许更改视图层代码而不用重写模型和控制器代码
2 开发和维护成本低,易于维护和修改

MVC 缺点

1.不适合小规模项目,不得不花费相当可观的时间去考虑如何将MVC模式运用到程序中
2.视图和控制器过于紧密连接
3.视图对模型访问效率低


MVP 特点

1 M V P 之间双向通信
2 View和Model之间不通信,他们之间通过Presenter传递。Presenter完全把View和Model进行了分离
主要逻辑在Presenter里实现。
3 View 不部署任何业务逻辑,Presenter 部署所有业务逻辑
4 Presenter 与具体的View 没有直接关联,而是通过定义好的接口进行交互,从而是变更View的时候
可以保护Presenter不变,这样可以复用。

MVP 的优点

1 Model 和View 完全分离,我们可以改View而不影响Model
2 可以更高效的使用Model,因为所有交互都发生在 Presenter内部
3 我们可以将一个Presenter用于多个View,而不需要改变Presenter 的逻辑
4 如果我们把逻辑放在presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)
MVP 的缺点
- 由于对视图的渲染放在了Presenter中,所以视图和Presenter的交互会过于频繁。还有一点需要明白,如果Presenter过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密。一旦视图需要变更,那么Presenter也需要变更了


MVVM特点

-View和Model进行了双向绑定,两者之间有一方发生变化则会反应在另一方

MVVM 的优点

MVP和MVC的主要区别是,MVP的View不能直接访问Model,需要通过Presenter发送请求,View和Model
不能直接通信。
MVP和MVVM的主要区别是,MVP 的View更新需要通过Presenter,而MVVM不需要,因为View 和
Model进行了双向绑定,数据的修改会直接反应在View上,而View的修改也会导致数据变更
,此时ViewModel需要做的是业务逻辑处理,以及修改View和Model的状态

猜你喜欢

转载自blog.csdn.net/Ghost_tal/article/details/82052377