查看“设计模式:MVC 模式”的源代码
←
设计模式:MVC 模式
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:设计模式]] == 关于 == MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 === 结构 === # Model(模型):模型代表一个存取数据的对象或 JAVA POJO(简单对象)。它也可以带有逻辑,在数据变化时更新控制器。 # View(视图):视图代表模型包含的数据的可视化。 # Controller(控制器):控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。 其结构如下: : [[File:J2EE 模式:MVC模式.png|300px]] === 示例 === 创建一个作为模型的 Student 对象。StudentView 是一个把学生详细信息输出到控制台的视图类,StudentController 是负责存储数据到 Student 对象中的控制器类,并相应地更新视图 StudentView。 其结构如下: : [[File:J2EE 模式:MVC模式:示例.png|600px]] 其代码如下: # Model:(Java POJO) #: <syntaxhighlight lang="java" line highlight=""> public class Student { private String rollNo; private String name; public String getRollNo() { return rollNo; } public void setRollNo(String rollNo) { this.rollNo = rollNo; } public String getName() { return name; } public void setName(String name) { this.name = name; } } </syntaxhighlight> # View: #: <syntaxhighlight lang="java" line highlight=""> public class StudentView { public void printStudentDetails(String studentName, String studentRollNo){ System.out.println("Student: "); System.out.println("Name: " + studentName); System.out.println("Roll No: " + studentRollNo); } } </syntaxhighlight> # Controller: #: <syntaxhighlight lang="java" line highlight="2,3"> public class StudentController { private Student model; private StudentView view; public StudentController(Student model, StudentView view){ this.model = model; this.view = view; } public void setStudentName(String name){ model.setName(name); } public String getStudentName(){ return model.getName(); } public void setStudentRollNo(String rollNo){ model.setRollNo(rollNo); } public String getStudentRollNo(){ return model.getRollNo(); } // 把模型信息显示到视图 public void updateView(){ view.printStudentDetails(model.getName(), model.getRollNo()); } } </syntaxhighlight> # 测试类: #: <syntaxhighlight lang="java" line highlight=""> public class MVCPatternDemo { public static void main(String[] args) { // 从数据库获取学生记录 Student model = retrieveStudentFromDatabase(); // 创建一个视图:把学生详细信息输出到控制台 StudentView view = new StudentView(); // 根据模型和视图,创建一个控制器 StudentController controller = new StudentController(model, view); controller.updateView(); // 更新模型数据 controller.setStudentName("John"); controller.updateView(); } private static Student retrieveStudentFromDatabase(){ Student student = new Student(); student.setName("Robert"); student.setRollNo("10"); return student; } } </syntaxhighlight> # 输出: #: <syntaxhighlight lang="java" line highlight=""> Student: Name: Robert Roll No: 10 Student: Name: John Roll No: 10 </syntaxhighlight>
返回至“
设计模式:MVC 模式
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息