MVC模式
2019-10-11 本文已影响0人
Stroman
总述
MVC在GUI开发中是十分常见的设计模式,也是基本框架。M代表数据模型,V代表视图,它是数据模型的可视化展示,C代表控制器,其中控制器控制着视图和数据模型。这里面控制器就内置了数据模型和视图。我认为控制器里面只不过一些方法,数据的存储都在数据模型里面,换句话说,这个控制器就是个指挥官的角色,就感觉像个交警在那里指挥数据模型和视图在那里交互一样。在iOS中数据模型和视图之间是没有直接交互的,而是通过控制器进行的,这个我感觉很合理。
类图
类图.png效果
这是controller自带的model
这是一个model
这是另一个model
Process finished with exit code 0
调用
package com.company;
public class Main {
public static void main(String[] args) {
// write your code here
Controller controller = new Controller();
controller.getView().updateData(controller.getModel());
Model model = new Model();
model.setInformation("这是一个model");
controller.setModel(model);
controller.getView().updateData(controller.getModel());
Model anotherModel = new Model();
model.setInformation("这是另一个model");
controller.getView().updateData(controller.getModel());
}
}
控制器
package com.company;
public class Controller {
private Model model;
private View view;
public Controller() {
this.model = new Model();
this.model.setInformation("这是controller自带的model");
this.view = new View();
}
public Model getModel() {
return model;
}
public void setModel(Model model) {
this.model = model;
}
public View getView() {
return view;
}
public void setView(View view) {
this.view = view;
}
}
数据模型
package com.company;
public class Model {
private String information;
public String getInformation() {
return information;
}
public void setInformation(String information) {
this.information = information;
}
}
视图
package com.company;
public class View {
public void updateData(Model model) {
System.out.println(model.getInformation());
}
}
多谢捧场
如果您觉得我的文章有价值,那么赏脸打赏一个,鄙人感激不尽。不过,不打赏看看也是好的,如果有不对的地方,还请您多多指正。