Java MVC 模式
MVC 模式
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
- Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
- View(视图) - 视图代表模型包含的数据的可视化。
- Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
实现
我们将创建一个作为模型的 Student 对象。StudentView 是一个把学生详细信息输出到控制台的视图类,StudentController 是负责存储数据到 Student 对象中的控制器类,并相应地更新视图 StudentView。
MVCPatternDemo,我们的演示类使用 StudentController 来演示 MVC 模式的用法。
步骤 1
创建模型。
1 Student.java
2
3 public class Student {
4 private String rollNo;
5 private String name;
6 public String getRollNo() {
7 return rollNo;
8 }
9 public void setRollNo(String rollNo) {
10 this.rollNo = rollNo;
11 }
12 public String getName() {
13 return name;
14 }
15 public void setName(String name) {
16 this.name = name;
17 }
18 }
步骤 2
创建视图。
1 StudentView.java
2 public class StudentView {
3 public void printStudentDetails(String studentName, String studentRollNo){
4 System.out.println("Student: ");
5 System.out.println("Name: " + studentName);
6 System.out.println("Roll No: " + studentRollNo);
7 }
8 }
步骤 3
创建控制器。
1 StudentController.java
2 public class StudentController {
3 private Student model;
4 private StudentView view;
5
6 public StudentController(Student model, StudentView view){
7 this.model = model;
8 this.view = view;
9 }
10
11 public void setStudentName(String name){
12 model.setName(name);
13 }
14
15 public String getStudentName(){
16 return model.getName();
17 }
18
19 public void setStudentRollNo(String rollNo){
20 model.setRollNo(rollNo);
21 }
22
23 public String getStudentRollNo(){
24 return model.getRollNo();
25 }
26
27 public void updateView(){
28 view.printStudentDetails(model.getName(), model.getRollNo());
29 }
30 }
步骤 4
使用 StudentController 方法来演示 MVC 设计模式的用法。
1 MVCPatternDemo.java
2 public class MVCPatternDemo {
3 public static void main(String[] args) {
4
5 //从数据库获取学生记录
6 Student model = retrieveStudentFromDatabase();
7
8 //创建一个视图:把学生详细信息输出到控制台
9 StudentView view = new StudentView();
10
11 StudentController controller = new StudentController(model, view);
12
13 controller.updateView();
14
15 //更新模型数据
16 controller.setStudentName("John");
17
18 controller.updateView();
19 }
20
21 private static Student retrieveStudentFromDatabase(){
22 Student student = new Student();
23 student.setName("Robert");
24 student.setRollNo("10");
25 return student;
26 }
27 }
步骤 5
执行程序,输出结果:
Java MVC 模式的更多相关文章
- Java——MVC模式
MVC:Model View Controller 一般用于动态程序设计,实现了业务逻辑和表示层分离 Model:掌控数据源-->程序员编写程序或者实现算法,数据库人员进行数据库操作等:响应用户 ...
- 使用Java MVC模式设计一个学生管理系统
最近在做web实验,要求是用jsp+servlet+mysql实现一个学生管理系统,完成对数据库的增删改查. 效果图: 代码: package dao; import java.util.List ...
- java 图形界面 mvc模式控制
使用模型-视图-控件结构来开发GUI程序. 下面的程序演示了MVC模式开发的java程序. 其中CircleModel为模型,包含了圆的半径,是否填充,等属性. CircleView为视图,显示这个圆 ...
- 【转】用java实例学习MVC模式
.1 MVC模式 MVC是三个单词的缩写,这三个单词分别为:模型(Model).视图(View)和控制(Controller).MVC模式的目的就是实现Web系统的职能分工.下面以J2EE开发进行介绍 ...
- 【转】利用MVC模式开发Java应用程序[组图]
Java是一种面向对象的语言,是实现面向对象编程的强大工具.我们在实际编程中,应该运用并发挥其最大效能.但是,要利用面向对象编程思想,自己独立开 发出好的Java应用程序,非凡是大.中型程序,并不是一 ...
- Java的MVC模式简介
Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件 ...
- MVC模式在Java Web应用程序中的实例分析
MVC在软件架构中是一种比较重要的架构思想,已经被广泛的应用在实际的java web项目开发中,我们所要了解和掌握的是mvc的架构思想和使用mvc模式来分析和解决问题的方法.当然相同或不同的项目都有各 ...
- java核心技术第五篇之事务和MVC模式
第一部分:事务1.事务的简介: 1.1 在一组操作中(比如增加操作,修改操作),只有增加和修改操作都成功之后,这两个操作才能真正的成功. ,如果这两个操作中,有一个失败了,这两个操作都失败了. 1.2 ...
- Java EE模式和MVC
Java EE模式 什么是模式? 开发过程中总结出来的约定俗成的"套路". Java EE经历的模式 model1模式 技术组成:JSP+JavaBean model1的弊端:随着 ...
- JSP的执行原理、JSP的内置对象、四大作用域解析、MVC模式理解>从零开始学JAVA系列
目录 JSP的执行原理.JSP的内置对象.四大作用域解析.MVC模式理解 JSP的执行原理 这里拿一个小例子来解析JSP是如何被访问到的 首先将该项目部署到tomcat,并且通过tomcat启动 通过 ...
随机推荐
- Registration Authority 简介
RA 功能简介 在公共密钥基础设施(PKI)中,CA(Certificate Authority,证书颁发机构)系统的RA(Registration Authority,注册机构)是PKI体系结构的重 ...
- 环境调试bug【二】无法加载源“<string>”: Source unavailable
1.无法加载源"<string>": Source unavailable. 网上解决方法: 总结来说就两种: debugStdLib: true 添加到 launch ...
- html 图片地图
<html> <head> <title></title> </head> <body> <img src="8 ...
- Dart常用核心知识
Dart简述 Dart 是一个为全平台构建快速应用的客户端优化的编程语言,免费且开源. Dart是面向对象的.类定义的.单继承的语言.它的语法涵盖了多种语言的语法特性,如C,JavaScirpt, J ...
- 关于19c RU补丁报错问题的分析处理
本文演示关于19c RU补丁常见报错问题的分析处理: 1.查看补丁应用失败的原因 2.问题解决后可继续应用补丁 3.发现DB的RU补丁未更新 4.opatchauto应用DB补丁报错解决 1.查看补丁 ...
- MySQL中 int(11)和int(10)有没有区别!!
结论:int(11) int(3) int(20) 若不勾选填充0,那么效果统统一样,若勾选了填充0:查询出来的效果 会是这样: int(11) 00000000123 int(3) 123 ...
- Kafka-基本介绍和常见问题
1.kafka 1.1.kafka介绍 kafka是最初由linkedin公司开发的,使用scala语言编写,kafka是一个分布式,分区的,多副本的,多订阅者的消息队列系统. 1.2.kafka ...
- C++——数据类型笔记
在C++编程中,了解各类数据类型也是至关重要的.下面我会总结一下C++中的数据类型,包括基本类型,符合类型和自定义类型.方便自己整理和理解. 1,基本类型 C++中的基本类型是构建其他数据类型的基础, ...
- Android 自动化测试项目
1 前言 在 Android自动化测试框架uiautomator2详解 中,介绍了 uiautomator2 框架的环境配置.元素定位工具以及常用接口. 本文对 uiautomator2 框架 ...
- Vue中$refs的理解
Vue中$refs的理解 $refs是一个对象,持有注册过ref attribute的所有DOM元素和组件实例. 描述 ref被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的$refs对象 ...