模型檢視控制器(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());
}
}