java mvc模式_Java MVC模式
MVC模式表示:模型 -视图 - 控制器模式。此模式用于分离应用程序的问题。
模型(Model) - 模型表示携带数据的对象或JAVA POJO。如果其数据改变它也可以具有逻辑来更新控制器。
视图(View) - 视图表示模型包含的数据的可视化层。
控制器(Controller) - 控制器对模型和视图都有起作用。它控制数据流进入模型对象,并在数据更改时更新视图。它保持视图和模型分开,也是视图和模型的中间层。
实现实例
在这个实例中,将创建一个作为模式的Student对象. StudentView将是一个可以在控制台上打印学生详细信息的视图类,StudentController是负责在Student对象中存储数据并相应地更新 StudentView 视图的控制器类。
MVCPatternDemo这是一个演示类,将使用StudentController来演示MVC模式的使用。
MVC模式示例的结构如下图所示 -
第1步
创建一个模型,其代码如下 -
Student.java
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;
}
}
第2步
创建一个视图,其代码如下 -
StudentView.java
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);
}
}
第3步
创建一个控制器,其代码如下 -
StudentController.java
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());
}
}
第4步
使用StudentController方法来演示MVC设计模式的使用。
MVCPatternDemo.java
public class MVCPatternDemo {
public static void main(String[] args) {
//fetch student record based on his roll no from the database
Student model = retriveStudentFromDatabase();
//Create a view : to write student details on console
StudentView view = new StudentView();
StudentController controller = new StudentController(model, view);
controller.updateView();
//update model data
controller.setStudentName("John");
controller.updateView();
}
private static Student retriveStudentFromDatabase(){
Student student = new Student();
student.setName("Robert");
student.setRollNo("10");
return student;
}
}
第5步
验证输出,执行上面的代码得到以下结果 -
Student:
Name: Robert
Roll No: 10
Student:
Name: John
Roll No: 10
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。
java mvc模式_Java MVC模式相关推荐
- 状态模式java 在线投票_Java 状态模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述状态(State)模式的:状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模 ...
- java dao模式_Java DAO 模式
DAO 模式 DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问.通俗来讲,就是将数据库操作都封装起来. 对外提供相应的接口 在面向对象 ...
- java动态代理_Java代理模式及动态代理详解
Java的动态代理在实践中有着广泛的使用场景,比如最场景的Spring AOP.Java注解的获取.日志.用户鉴权等.本篇文章带大家了解一下代理模式.静态代理以及基于JDK原生动态代理. 代理模式 无 ...
- java 值对象_java 中设计模式(值对象)的实例详解
java 中设计模式(值对象)的实例详解 应用场景:在Java开发时,需要来回交换大量的数据,比如要为方法传入参数,也要获取方法的返回值,该如何能更好的进行数据的交互?这个时候就需要用到我们的值对象设 ...
- java单态模式_Java单态模式
Java的单态模式 Singletom 作用:保证在Java应用程序中,一个Java类只有一个实例存在:所以一般单态类会提供一个返回该类实例的方法.提供一个对对象的全局访问指针. 优点:节省内存,限制 ...
- 策略模式java 用例_java策略模式简单用例
运用java策略模式一个小程序 /** * */ package Strategy; import java.util.Arrays; /** * @author HuangRong * @Funti ...
- java 模板模式_Java模板模式(Template模式)
Java模板模式(Template模式) 下一节> Template模式定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 其实Java的抽象类本来就是Template模式,因此使 ...
- java state用法_Java状态模式(State模式)
State的定义:不同的状态,不同的行为:或者说,每个状态有着相应的行为. 何时使用状态模式State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elsei ...
- java atm模拟系统_Java RPC模式开发一个银行atm模拟系统
采用rpc模式开发一个银行atm模拟系统. 系统主要提供一个服务Card,该服务接口可以提供登录.查询.取钱.存钱等功能.服务接口的设计和实现自定义. Atm客户端功能需求: 1.ATM可以实现用户登 ...
最新文章
- NBT:Rob Knight团队发表微生物组数据降维新方法
- Windows Azure Cloud Service (19) 动态指定WCF的发布地址
- 第10课:优化神经网络——如何防止过拟合
- python列表操作
- 看完后完全了解 Vue 2.0 和 Vue 3.0 的区别
- c++程序设计中多态与虚函数知识点
- SSL:Self-Supervised Learning(自监督学习)是什么?
- Vector使用方法简单整理
- Scrapy框架(持久化,去重,深度控制,cookie)
- js html 单引号,JS 和 HTML 中的单引号与双引号
- js赋值时特殊字符完美处理方案
- 黑马程序员_Java学习日记num8
- ONVIF协议--ONVIF协议简介
- 实时监控网页变化,并增加多种提示信息
- matlab已知随机样本求总体均值与方差的矩估计值(例子应用)
- SAP中常用到的会计知识
- CAD不支持实时调试
- FedEx v20.0.7654的CData驱动程序
- stream流的常用方法
- 我用scratch做了个二分查找
热门文章
- 电气毕业生在国家电网都干啥工作?
- 使用verilog实现基于FPGA的TDC设计
- 基于xilinx vivado的XADC IP设置使用详解
- Linux如何访问mmio空间,一文读懂Linux下如何访问I/O端口和I/O内存
- oracle 转换成csv文件,如何将csv转换为oracle中的表
- c语言枚举入门,C语言入门之枚举与位运算(1)
- eclipse中无法移除jar包_IDEA中已配置阿里镜像,但maven无法下载jar包的问题
- java 短链接实现方案_java利用百度短网址api实现URL长短互换工具类分享
- 线程池的简单创建和实现
- 计算机网络自顶向下方法【七】——链路层