mvc,mvp,mvvm的个人理解

前言

随着项目的需求的增加,代码的堆积会造成整个程序臃肿不堪,那么就急切需要了解些实用的架构设计,优化代码结构以及增加扩展性。

mvc架构(模式)

开发可以分为三部分,Model,View,Controller。
mvc

  • 视图(view):用户界面,完成前端的数据展示。
  • 控制器(controller):业务逻辑。
  • 模型(Model):数据保存和处理,在传递给视图层响应或者展示

优点:
1.耦合性低
2.重用性高
3.可维护性高
4.有利于软件工程化管理
缺点:
1.没有明确的定义
2.不适合小型,中等规模的应用程序
3.增加系统结构和实现的复杂性
4.视图与控制器过于紧密的连接
5.视图对模型数据的低效率访问

mvp架构(模式)

MVP是Model-View-Presenter简称,MVP是从经典的模式MVC演变而来,它们的基本思想有相通的地方Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示:
mvp
各部分之间的通信,都是双向的。View 与 Model 不发生联系,都通过 Presenter 传递。可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁。View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

优点:
1.降低耦合度
2.模块职责划分明显
3.利于测试驱动开发
4.代码复用
5.隐藏数据
6.代码灵活性高
缺点:
1.视图的渲染放在Presenter中,所以视图和Presenter的交互会过于频繁。如果Presenter过多地渲染视图,往往会使得它与特定的视图的联系过于紧密。

mvvm架构(模式)

mvvm分为Model(数据层)、view(展示层)、viewmodel(数据模型)。
MVVM模式主要是减轻Controller层或者View层的压力,实现更加清晰化代码。通过对ViewModel层的封装:封装业务逻辑处理,封装网络处理、封装数据缓存等,让逻辑处理分离出来,并且不需要处理Model数据,使得Controller层或者View层结构简单,条理清晰。
在这里插入图片描述
优点:
1.双向绑定时,当Model变化时,View-Model会自动更新,View也会自动变化。
2.View的功能进一步强化,具有控制的部分功能。
3.控制器的功能大部分移动到View上处理,大大的对控制器进行了瘦身。
缺点:
1.数据绑定使得Bug很难被调试。
2.数据双向绑定不利于代码重用
3.大的模块,model很大,不利于内存的释放

猜你喜欢

转载自blog.csdn.net/weixin_44063225/article/details/111558517