MVC模式了解

M:Model模型
V:View视图
C:Controller控制器

MVCPatternDemo

例:创建一个作为模型的Student对象。StudentView视图类:把学生详细信息输出到控制台【显示】;StudentController控制器类:负责存储数据到student对象中,并相应地更新视图StudentView。

1、创建模型
//Student.java
public class Student(){
	private String rollNo;
	private String name;
	
	public void setName(String name){
		this.name= name;
	}
	public String getName(){
		return name;
	}
	public void setrollNo(String rollNo){
		this.rollNo=rollNo;
	}
	public String getrollNo(){
		return rollNo;
	}
}
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;//只声明?不new?
	private StudentView view;//

	StudentController(Student model, StudentView view){//这儿带参初始化
		this.model= model;
		this.view= view;
	}
	public String getStudentName(){
		//错误!return model.name;肯定不呢个在这直接访问model的数据阿我脑袋
		return model.getName();
	}
	public void setStudentName(String name){
		//错了。。model.name= name;
		model.setName(name);
	}
	public String getStudentRollNo(){
		//错了。。return model.rollNo;
		return model.getRollNo();
	}
	public void setStudentRollNo(String rollNo){
		//错了。。model.rollNo= rollNo;
		model.setRollNo(rollNo);
	}
	public void updateView(){
		//错了。。view.printStudentDetail(model.name, model.rollNo);
		view.printStudentDetail(model.getName(),model.getRollNo());
	}
}
4、Demo演示MVC设计模式的用法

控制器 方法演示MVC设计模式的用法

//MVCPatternDemo.java
public class MVCPatterDemo{
	
	public static void main(){
		//从数据库获取学生记录==》模型
		Student model= retrieveStudentFromeDatabase();
		//创建一个视图:把学生详细信息输出到控制台==》视图
		StudentView view= new StudentView();
		//用控制器
		StudentController controller= new StudentControll(model, view);
		controller.updateView();
		
		//更新模型数据
		controller.setStudentName("zhao");
		controller.updateView();	
	}
	
	//从数据库获取学生记录
	public static Student retrieveStudentFromDatabase(){
		Student student= new Student();
		student.setName("chen");
		student.serRollNo("01");
		
		return student;
		
	}
	
	/*输出:
		Student: 
		Name: chen
		Roll No: 01
		Student: 
		Name: zhao
		Roll No: 01
	*/
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值