MVC 是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
- 模型 Model 是应用程序的核心,包含了数据和处理数据的业务逻辑。Model 层也会发送事件变更通知给 View,方便上层感知到底层的变化。
- 视图 View 负责界面的呈现,同时也是响应用户交互事件的入口,向控制器提交用户的动作。
- 控制器 Controller 负责处理用户的交互请求,并调用 Model 层来完成任务。
平常开发最常用的是 Spring MVC 框架,那么 Spring MVC 里各个模块和 MVC 对应关系是怎样的呢?
- 模型 Model 包含数据和核心的业务逻辑,那么查询 DB 的 Dao 层、处理数据 Service 层应该都属于模型 Model 了。
- 视图 View 负责界面呈现和用户交互,在 Spring 里 ModelAndView 提供了展示所用的数据,JSP 负责展示和交互。
- 控制器 Controller 负责处理用户的交互请求,也就是 Spring 里的 DispatcherServlet 和 Controller 层了。