模型视图控制器(MVC)
1.什么是 MVC?
模型视图控制器(MVC)模式是最常用于创建用户界面的设计模式。MVC 的主要优点是它分离:
- 应用程序状态(模型)的内部表示,
- 如何将信息呈现给用户(视图),以及
- 控制用户如何与应用程序状态(Controller)交互的逻辑。
2. MVC 的使用案例
MVC 的主要用例是图形用户界面(GUI)编程。View 组件侦听 Model 组件以进行更改。该模型充当广播公司; 当模型有更改模式时,它会将其更改广播到视图和控制器。View 使用 Controller 来修改模型组件。
3.实施
考虑以下 MVC 实现,其中我们有一个名为 Animals
的 Model 类,一个名为 DisplayAnimals
的 View 类,以及一个名为 AnimalController
的控制器类。下面的示例是来自 Design Patterns - MVC Pattern 的 MVC 教程的修改版本。
/* Model class */
public class Animals {
private String name;
private String gender;
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public void setName(String name) {
this.name = name;
}
public void setGender(String gender) {
this.gender = gender;
}
}
/* View class */
public class DisplayAnimals {
public void printAnimals(String tag, String gender) {
System.out.println("My Tag name for Animal:" + tag);
System.out.println("My gender: " + gender);
}
}
/* Controller class */
public class AnimalController {
private Animal model;
private DisplayAnimals view;
public AnimalController(Animal model, DisplayAnimals view) {
this.model = model;
this.view = view;
}
public void setAnimalName(String name) {
model.setName(name);
}
public String getAnimalName() {
return model.getName();
}
public void setAnimalGender(String animalGender) {
model.setGender(animalGender);
}
public String getGender() {
return model.getGender();
}
public void updateView() {
view.printAnimals(model.getName(), model.getGender());
}
}