MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
- (控制器 Controller)- 负责转发请求,对请求进行处理。
- (视图 View) - 界面设计人员进行图形界面设计。
- (模型 Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
---
Java
Java 平台企业版 (J2EE)
和其他的各种框架不一样,J2EE为模型对象(Model Objects)定义了一个规范。
视图(View)
在J2EE应用程序中,视图(View)可能由Java Server Page(JSP)擔任。生成 View 的代码则可能是一个servlet的一部分,特别是在客户端服务端交互的时候。
控制器(Controller)
J2EE应用中,Controller 可能是一个servlet。
除了可直接以J2EE來撰寫外,亦可用其他框架來撰寫,常見的有Struts2、Spring Framework……等等。
模型(Model)
Model 则是由一个实体Bean来实现。
Java Swing[编辑]
Swing是一个标准的MVC结构. ComponentUI代表 View, 负责描画组件. 组件尤其 Model 层, 比如JTextField的Document, JTable的TableModel, JTree的TreeModel等等. 而Control可能不是很明显, 我们或许可以简单的将其Event机制看作一个Swing团队开发给开发者的 Controller。
作为Java开发者, 如果想理解MVC的结构, 学习Swing的确是个不错的选择.
---
例子:
View是登录界面。Model是登录功能模型,提供实现登录功能的所有接口,比如网络请求,数据校验等。Controller是View和Model的桥接,将View的输入传递到Model,并将Model的结果反馈到View。
举个栗子,登录时:
1、用户在View的Input上输入手机号后,点击View上的Button,触发Controller调用Model的verifyMobile(mobile)接口。
2、Model.verifyMobile(mobile) 校验后不符合手机号格式,返回出错提示msg: {passed: false, message:"长度不对"}。
3、Controller将msg显示在View上Input上。你就看到 Duang! 在手机输入框后边出现一个红色提示框提示长度不对。
4、用户修改成正确的手机号后,重复1、2,校验通过。Controller再调用login(mobile, password)方法来请求登录。