MVC模式到底是个什么
—恢复内容开始—
前言 第一遍写的时候笔记本直接白屏了,无奈只能恢复一点点
本人是刚接触java不久的小白级码农,但是有着一颗想写一手漂亮代码的心。
最近陷入了一个困境,就是发现自己仅仅只有模仿别人的代码和逻辑来 写和别人实现的功能很相似的代码,如果让自己单独去开发,脑子里面简直就跟下班高峰期的南二环一样。我想很多刚接触java不久的孩子都有这种感觉。刚好今天在苦闷了很久之后偶尔看到了MVC模式,突然发现以前对MVC逻辑超级混乱的理解逐渐清晰了,所以就来尝试着从小白的角度来阐述对于MVC模式的理解。非常欢迎各位前来交流并且指正,那样也会让我提高地更快。
首先,MVC在我的理解看来 他是一种架构模式,也可以说是一种框架的模式。而并非是一种设计模式,从百度百科找来设计模式的概念
-
设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是
软件工程的基石脉络,如同大厦的结构一样。
那么,从我个人的角度理解,就相当于
盖一栋楼和
盖一座房子。
盖一栋楼和盖一座房子,他们动工的流程基本都是一样的:设计师出图纸、打地基、用砖垒、封楼顶。
但是他们不一样的地方在于 盖一栋楼所出的图纸、所要打的地基的深度等等和盖一座房子所用的图纸、所要打的地基的深度都是不一样的。因此,他们动工的这些流程就可以看作是
设计模式的一种,而他们实际盖的时候所需要的架构就类似于
MVC框架模式。
MVC模式的概念
1、Model(业务模型):应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。
说白了就是确定要打的地基等一系列信息的。
2、view(视图):应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
其实就是反映了盖出来的到底是楼还是房。
3、controller(控制器):应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
其实就是决定收集到到底是开发商要来盖楼盘还是个体户要来盖房子。
下面就是我曾看到过的一个MVC模型的图:
id="iframe_0.4814701662759706" scrolling="no">
从图中可以看出,控制器获取到了用户的请求 然后不做任何处理就转发给了模型,模型通过自己的业务逻辑判断,以及对数据库中数据的操作,找到了满足控制器所转发过来的用户请求,假设模型所要提交给视图的请求都和视图有一个虚拟的链接地址,那么每次在模型确定好要传送的已经处理好的用户请求的时候,视图就会对模型的这一请求做出回应,便会将不同的页面展示给用户,然后根据用户的进一步要求继续重复之前的流程。
从个人角度,用大白话来说就是:模型=建筑公司的施工部门;控制器=建筑公司的销售部门;视图=建筑公司的设计部门;
在销售部门成功拉到用户的时候,他会将用户的需求直接交给施工部门,其中需求就包括到底谁要做什么;施工部门在得到销售部门从用户那里得到的请求之后,就会用用户的请求和自己所能承接的项目做对比呀,比如 一个房地产开发商要盖一座别墅,那么施工部门就会判断自己会不会改别墅喽;在施工部门确定好是否能满足用户的需求之后就会把这个决定告诉设计部门,那么就会让设计部门负责把他们所能做的图纸反馈给用户,当然,如果不能做,那就会反馈给用户一张白纸加许多句解释的话呗。如果用户满意了,那么就直接进行这个项目,如果用户觉得图纸上哪个地方有问题,那么久继续重复之前的操作。
以上大概就是我所理解的MVC框架模式,如果有不准确的地方请大家批评指正,谢谢!
—恢复内容结束—