MVC简介

MVC是一种软件架构模式,由模型、视图和控制器组成,旨在实现组件间的解耦。模型负责数据操作,视图用于显示模型数据,而控制器处理用户输入并协调模型和视图。理想情况下,MVC各部分应相互独立,但在实际应用中往往存在一定的耦合。通过控制器作为桥梁,模型和视图可以保持隔离,以降低影响。
摘要由CSDN通过智能技术生成

经常会看到MVC设计方式,在前端框架中大量的被应用,其他软件实现中也用到了MVC。

MVC就是模型/视图/控制器三个部分组成的软件架构方式。三者应该互相隔离。但是通常很难完全解耦。

M即Model,模型,指的是对数据的抽象。无论数据是存在文件/网络或者就是模型实现当中。模型并不是指数据本身,而是对数据操作的封装。当然也可以直接把数据放到模型中。

V及View,视图。主要用来显示模型中的数据,不同的View有不同的显示方式,取决于View是如何实现的。比如windows系统中文件夹中显示方式,可以小图标/大图标/详细信息切换视图显示;或者QT中的列表/报表/树形显示。

C即Controller,控制器,主要用于实现业务逻辑以及用户输入。用户通过UI(例如窗口软件/控制台)输入数据,控制器将其进行业务逻辑处理,比如文字处理软件,用户输入了一个字符,内部需要处理该字符的一些格式属性,然后将数据放到内存中存储起来,也就是通知模型层把数据存放起来。数据变化了,通知视图层,要进行显示。

网络上可以看到很多MVC的文章,有些实现耦合比较严重。视图中包含模型对象/控制器对象。实际上,MVC就是为了解耦。某一层的改动不影响另一层。模型不用知道视图怎么显示渲染,也不用知道控制器何时获取数据/设置数据(但是需要提供合适接口给控制器读写数据,这种耦合是不可避免的;)。有的文章中,数据改变了,直接在模型层通知所有相关(就是注册了的)的视图,数据变化了。我觉得比较好的实践就是M和V相互隔离,通过C作为桥梁。如下图中,可以看到模型和视图是完全解耦的。我们只需要在初期将控制器注册到模型对象中,然后模型对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值