MVC模型

发布 | 2024-08-31 | JAVA

MVC(Model-View-Controller)是一种常见的设计模式,用于构建结构化、模块化的应用程序。

MVC 模型通过将程序分为三层:模型(Model)、视图(View)和控制器(Controller),来实现职责的分离。

以一个“餐饮”的例子来解释 MVC。

1. Model:(类比厨房)

模型(Model)是核心逻辑层,负责处理数据和业务逻辑。

在我们的餐饮店例子中,模型就像厨房里的厨师。

厨师们负责制作餐食(处理数据)、配料选择(业务逻辑)等。

厨师根据菜单和顾客要求(数据)做出决定。

厨房是不直接和顾客打交道的(类似于 Model 不直接与用户界面互动),他们只负责制作餐食,把制作好的餐食交给服务员即可。

厨房不会关心餐食要送给哪个顾客,服务员(Controller)会处理这部分。

2. View:(类比餐桌)

视图(View)是用户看到的界面部分。在餐饮店的例子中,视图就像顾客的餐桌。

餐桌上摆放着菜单(用户界面),顾客通过菜单选择想要的餐食(查看和操作数据)。

服务员将制作好的餐食端上餐桌(将数据传递给视图)。餐桌不会关心餐食是怎么做出来的,也不会关心它从哪里来,它的工作只是展示餐食(显示数据)。

3. Controller:(类比服务员)

控制器(Controller)是连接视图和模型的桥梁,它就像餐厅里的服务员。

在餐饮店中,顾客(用户)会把他们的订单(请求)告诉服务员(Controller)。

服务员将订单送到厨房(Model),然后等厨师(Model)做出餐食(处理数据)。

当餐食做好后,服务员会把餐食送到顾客的桌子上(View)。如果顾客有任何问题,服务员会根据要求来调整厨房的操作(更改数据逻辑)。

服务员不需要知道具体的做法(具体业务逻辑),他只需要将顾客的需求转达给厨房,并把制作好的餐食送给顾客就行。

MVC 流程总结

  1. 顾客(用户):代表用户发出请求,比如要求点餐。
  2. 服务员(Controller):接收顾客的请求,把订单(请求)送到厨房,并将结果(餐食)送回顾客。
  3. 厨房(Model):根据订单(请求)制作餐食(处理数据和业务逻辑),完成后通知服务员。
  4. 餐桌(View):展示餐食(显示数据)给顾客。

可以想象一下当顾客抱怨餐食太咸了时,服务员(Controller)可能会立即通知厨师(Model)改进配方,同时告诉其他顾客(View)稍等一下。

这就相当于当用户在前端操作页面时,触发某些动作(如提交表单),控制器会去执行一些逻辑(如修改数据库),并立即更新用户界面。

这样一来,通过 MVC 的分层模型,每个角色各司其职,餐食店运行井井有条,不管是上菜、做菜还是点菜,都有了明确的分工,互不干扰。

无论菜单(数据)如何变化,服务员(控制器)如何调整上菜速度,厨房(数据逻辑)如何改变,顾客(用户)都能享受到美味的餐食!

标签
没有标签

© 著作权归作者所有

本文由 趣代码Blog 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。

评论关闭