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

4.使用的來源:

設計模式 - MVC 模式

使用 MVC 的 Java SE 應用程式設計

模型 - 檢視 - 控制器