MVC是Modal View Controler的缩写,原业是用于桌面程序设计中的概念,由以下三个主要部分构成,三部分各司其职。
- Model :模型层(用于数据库打交道)
- View :视图层(用于展示内容给用户看)
- Controller :控制层(控制业务逻辑)
MVC模型如下图所示:
使用MVC的目的是将Model和View的实现代码分离,从而使同一个程序可以使用不同的表现形式。对于同一批数据(Model),可以通过不同的View以不同的形式展示给用户。例如,对于BBS中的贴子,可以用不同的方式来显示。而Controller则是用来控制Model和View进行同步的控制器,如果Model有所改变形,View中应该同步更新相应的数据。
MVC如何工作
MVC是一种设计模式,使应用程序的输入、处理和输出分开。使用MVC模式的应用程序分成三个核心部件:Model、View、Controller,三个部件各司其职,分别处理自己的任务。
View(视图)
视图是与用户交互的界面,在MVC的视图中,对HTML技术进行了扩展,可以更丰富的向用户展示不同的界面效果。如支持XHTML、XML/XSL、WML等,还支持Web Services。
MVC能为应用程序处理许多不同的视图。在视图中只是输出Model提供的数据,并接收用户的操作。也就是说,View的职责只是将数据展示出来,然后让用户进行操作,至于展示的数据是从哪里获取的?是以什么方式获取的?这些问题都不用View操心。
Model(模型 )
模型用来业务规则。在MVC中,模型可使用各种技术处理数据库,例可使用EJBs、ColdFusion Components这样的构件对象来处理数据库,也可使用ADO.NET或者LINQ来处理数据库。Model的职责就是为View提示展示的数据,一个模型可以为多个视图提供数据。
Controller(控制器 )
控制器用来接受用户的输入,并调用模型和视图去完成用户的需求。所以当用户单击页面中的超链接或发送HTML表单时,控制器将接收请求,然后根据情况决定调用哪个模型Model去处理请求,再决定用哪个视图View来展示模型Model返回的数据。
程序员可根据自己的需求编写MVC框架,但是,由于MVC本身就是一个非常复杂的系统,这可是一个庞大的工程。
更多的情况是使用成熟的MVC框架,在此之下进行开发,能够达到事半功倍的效果。
Java Web有很多基于MVC框架,例如,有Struts、Spring MVC、WebWork、Turbine、Maverick等框架。
现在,ASP.NET也推出了MVC 1.0正式版。