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之间的虚线是不存在的。
效果如下图:
当前还没有观点发布,欢迎您留下足迹!