设计模式 之 MVC

本文详细介绍了MVC设计模式的概念及其在UI设计中的应用。MVC即模型(Model)、视图(View)与控制器(Controller),是一种将应用程序逻辑划分为三个核心组成部分的方法。模型处理数据和业务逻辑,视图负责用户界面呈现,控制器则处理用户输入并调用模型和视图完成相应的逻辑处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC设计模式,M:Model,V:View,C:Controller,所以MVC模式即:模型、视图与控制器模式。

这种设计模式在UI设计中比较多见,UI是比较难做的部分,虽然很多人不太看得起做UI,但是为系统设计出一套比较优雅的UI,或者甚至是设计一套UI组件,都是比较难的。

说UI设计比较复杂是因为它需要处理的事情非常多,比如:需要绘制、需要获取数据、需要处理各种系统事件与用户输入事件、根据现有数据和用户命令处理数据、更新数据…… 正是由于它的复杂,我们在对它进行面向对象分析的时候就希望能把它的功能优雅地分解开,放到不同的部件上去,使得它们各自负责一块,这样才不至于各种功能的代码混乱地放在一起。

最基础的想法就是MVC了。

Model就是模型,是指数据模型,比如你要做一个UI来展示你所有产品的信息和销售情况,那么你能想到的是一个树状模型吧?树有一个根节点,根节点上挂着的是所有的产品类型,每种产品下面又挂着这个月这种产品的所有订单。好了,那我们就构造一个数据模型:Root -> Products -> Orders,这个数据模型就是Model,你从服务器端取过来的数据就是这个样子的了。

View是视图,它只管绘制,根据数据进行绘制,在绘制的过程中也设置好必要的各种事件的监听器。

Controller是控制器,控制器是逻辑控制器,所有的事情都由它来控制:View进行绘制时所依据的数据是从控制器来的,各种事件发生时所作的运算、操作都是由控制器来做的。

这里要注意的是:View只跟Controller打交道(管Controller要数据、告诉Controller什么事件发生了),Model也只由Controller来读、写。

就以刚才的例子而言,当客户端打开的时候,Controller就被创建出来了,它会在它的初始化操作里向服务器端发送请求,查出对应的数据,以我们定义好的格式传回客户端,并以此数据构造出Model,然后通知View数据初始化完毕,可以开始进行绘制。View得到通知后,向Controller请求需要的数据并以此数据进行绘制,将数据表格绘制出来,并且向这些数据表格添加事件监听器,比如:用户编辑数据的事件、用户点击保存按钮的事件等。那么,当事件发生的时候,View通知Controller,将变化的数据告诉Controller,Controller将根据这些数据进行逻辑运算、数据更新操作,操作完毕再通知View,让View进行全部或局部的重新绘制。

学习一种模式,还是应该强调它的场景,是在一定的情况下,我们为了达到某个目标而做出的设计。以MVC模式为例,我们可以再回头看看这个场景:需要将一些数据以表格形式展示,并且用户可以操作这些数据并进行保存,保存完后需要刷新表格中的数据。我们可以针对这个目标,自己设计,并依照我们前面所说的设计原则对这个自己做的设计进行优化,结果将得到MVC模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值