1、模式理解:这个模式很明显是分层次的,模式模型m通过控制层c将信放到视图层v上,同时可以可以通过控制层,改变模型层的数据,从而来改变视图上的数据
2、运用场景:框架就是用这种模式的多
3、代码示例:
//先创建一个模型层
public class Model {
String modelName;
String modelId;
public String getModelName() {
return modelName;
}
public void setModelName(String modelName) {
this.modelName = modelName;
}
public String getModelId() {
return modelId;
}
public void setModelId(String modelId) {
this.modelId = modelId;
}
}
//根据模型层创建一个视图层
public class View {
public void show(String name,String id){
System.out.println(name+"---"+id);
}
}
//接着创建一个控制层,可以将模型层的数据传递给视图,同时也可以通过控制层,修改模型数据
public class Controller {
private Model model;
private View view;
public Controller(Model model,View view) {
this.model=model;
this.view=view;
}
//将模型层的数据传递给视图
public void updateView(){
view.show(model.getModelName(), model.getModelId());
}
//可以修改模型数据
public void setModelName(String modelName){
model.setModelName(modelName);
}
//可以修改模型数据
public void setModelId(String modelId){
model.setModelId(modelId);
}
}
//最后写个测试类测试一下
public class Main {
public static void main(String[] args) {
Model model=new Model();
View view=new View();
model.setModelId("111");
model.setModelName("tudou");
Controller controller=new Controller(model, view);
controller.updateView();
//通过控制层修改模型以此来改变视图
controller.setModelName("xigua");
controller.updateView();
}
}