热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

生活中的MVC模式,一个吃货的理解。

拉三两还是拉二两,面拉完之后Control师傅又把拉好的面交给View师傅。View师傅于是在面上加上鸡蛋、牛肉、羊肉、土豆、番茄、豆腐。就这样一份美味的拉面就送到了顾客的手中。完成了一份面的旅程,同时也顺利的完成MVC的过程

以下是生活中对于MVC模式的领悟,虽然可笑,轻喷。

 

2015年 8月 26日

M  => Model       模型 我认为叫做模具更好的理解。批量加工生产具有相同特征的东西。       

V   => View         显示。

C   => Control    控制模型用的。就好比模具师傅吧,统筹调控所有的模具,最后把模具里所生产的产品组合起来,显示到View里面就成了我们的一个产品。

有趣的是,前几天去世界著名美食品牌连锁店——兰州拉面吃饭的时候。看到牛肉拉面、羊肉拉面、红烧土豆拉面、蘑菇拉面...面都是一样的,只是上面的浇头不一样。

拉面的师傅专门负责拉面,我亲切的称Model师傅。

在桌子中间穿梭的老板,店小二,我称之为Controle师傅。

负责做各种面上的浇头的美女师傅,我称之为View师傅。

Control 师傅 收到顾客的HTTP请求,带着顾客的需求参数(什么面,加蛋不加蛋),然后交给了我们的Model师傅,Model师傅根据Control的要求,把面拉宽拉细,拉三两还是拉二两,面拉完之后Control师傅又把拉好的面交给View师傅。View师傅于是在面上加上鸡蛋、牛肉、羊肉、土豆、番茄、豆腐。就这样一份美味的拉面就送到了顾客的手中。完成了一份面的旅程,同时也顺利的完成MVC的过程。

 

上面的三个师傅各司其职,专业分工十分明确。因此一份香气四溢的拉面,就在顷刻之前送到了我的面前,效率很高。

假若Control师傅要拉面,Model师傅要加浇头,view师傅呢跑去接顾客需求。这样子Control师傅面拉不好,Model师傅的浇头是黑暗料理,view师傅记不住那么多顾客的需求。于是整个餐馆乱成一锅粥,面迟迟不能做好,即使做好了,还是黑暗料理,难吃异常。

 


推荐阅读
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文讲述了作者从最初对软件工程的选择迷茫到逐渐喜欢并坚持学习的经历。作者在大学期间通过学习专业课和参与项目开发,不断挑战自己并取得成就感。虽然曾考虑过转专业和复读,但最终决定坚持学习软件工程,并为自己的未来努力奋斗。作者还提到了大学生活与自己最初的预期不同,但对此并没有太多抱怨。 ... [详细]
  • 使用J2SE模拟MVC模式开发桌面应用程序的工程包的介绍
    以我开发过的一个娱乐管理系统为例:下图为我系统的业务逻辑的MVC流程:下图为以Eclipse开发中各包的说明:转载于:https:blog ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 数据库锁的分类和应用
    本文介绍了数据库锁的分类和应用,包括并发控制中的读-读、写-写、读-写/写-读操作的问题,以及不同的锁类型和粒度分类。同时还介绍了死锁的产生和避免方法,并详细解释了MVCC的原理以及如何解决幻读的问题。最后,给出了一些使用数据库锁的实际场景和建议。 ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
  • 今天写一篇blog,已经多长时间没有更了,两个月了吧,没办法,现在银行开发,不能连外网,天天用虚拟机,真烦今天随手写点东西,主要是这两天对于springboot启动的分析,有所领悟 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储模式
    代码已上传Github+Gitee,文末有地址  书接上文:前几回文章中,我们花了三天的时间简单了解了下接口文档Swagger框架,已经完全解放了我们的以前的Word说明文档,并且可以在线进行调 ... [详细]
  • 一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ... [详细]
  • MVC中的自定义控件
    怎么样创建自定义控 ... [详细]
author-avatar
舅舅家123_204
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有