模型视图控制器(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 应用程序设计

模型 - 视图 - 控制器