MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,本身并不引入新的功能,用来指导我们改善应用程序的架构,使得模型和视图相分离,得到更好的开发和维护效率。
MVC 的全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。
MVC 是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。
MVC 始存于桌面程序中的,M 是指业务模型,V 是指用户界面,C 则是控制器。
MVC 设计在 Java Web 应用中得到广泛的应用,但其并不局限于 Java 语言,比如前端、PHP、.NET 等语言。
之所以采用 MVC 设计模式的根本原因在于解耦各个模块。
MVC 英文即 Model-View-Controller,即把一个应用的输入、处理、输出流程按照 Model、View、Controller 的方式进行分离,这样一个应用被分成三个层:模型层、视图层、控制层。
MVC 三个层面的职责非常明确,而且相互分离,因此每个层面都可以独立的改变而不影响其他部分,从而大大提高了应用的灵活性和重用性。
模型(Model)通常又分为数据模型和业务逻辑模型。
因此:Model 主要用于存储数据以及处理用户请求的业务逻辑。
视图(View)代表模型(Model)包含的数据的可视化,将内容展现给用户。
控制器(Controller)控制数据流向模型对象,并在数据变化时更新视图。
控制器(Controller)作用于模型和视图上,本身并不做任何处理,它使得视图与模型解耦分离。
当程序结构划分不明确时,各个部分功能混乱,如果需要变更业务功能时,无论是业务逻辑修改还是显示形式修改,都要修改很多的关联类,“牵一发而动全身”,导致软件的开发和维护效率低下,BUG 百出。
遵循 MVC 模式来开发系统,就会极大的避免上述问题的出现。
MVC 模式的核心手段是解耦,MVC 模式通过科学的层次划分,把整个应用程序划分成模型、视图、控制器三个部分,然后严密控制三个部分之间的通信,从而得到一个结构清晰、功能分布合理、可重用、可扩展、可维护的应用程序。
采用 MVC 设计模式并不一定完全生搬硬套。
比如在 Java 的 Web 开发中,通常把 Servlet+JSP+JavaBean 的模型称为 Model2 模型,这是一个完全遵循 MVC 模式的模型。
经典框架 Struts2、SpringMVC 均遵循了这个模型进行设计。
在 Web 开发中,由于 Web 应用程序的性质,不存在服务器主动向客户端“推”数据(这里代指 TCP 协议下),因此从 Model 到 View 之间的虚线是不存在的。
效果如下图:
温馨提示:系统将通过浏览器临时记忆您曾经填写的个人信息且支持修改,评论提交后仅自己可见,内容需要经过审核后方可全面展示。