Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist das MVC-Entwurfsmuster?

Was ist das MVC-Entwurfsmuster?

藏色散人
藏色散人Original
2019-04-16 13:19:409363Durchsuche


Model View Controller wird als MVC bezeichnet, also Model View Controller. Das MVC-Entwurfsmuster gibt an, dass eine Anwendung aus einem Datenmodell, Präsentationsinformationen und Steuerinformationen besteht. Das Muster erfordert, dass jedes Muster in verschiedene Objekte unterteilt wird.

MVC ähnelt eher einem Architekturmuster, ist jedoch nicht für vollständige Anwendungen geeignet. MVC befasst sich hauptsächlich mit der UI-Interaktionsschicht der Anwendung. Sie benötigen weiterhin eine Geschäftslogikschicht und wahrscheinlich einige Serviceschichten und Datenzugriffsschichten.

Was ist das MVC-Entwurfsmuster?

Das Modell enthält nur reine Anwendungsdaten und keine Logik, die beschreibt, wie die Daten dem Benutzer präsentiert werden.

Ansicht Zeigt dem Benutzer die Daten des Modells an. Die Ansicht weiß, wie sie auf die Daten des Modells zugreifen kann, hat aber keine Ahnung, was diese Daten bedeuten oder was der Benutzer tun kann, um sie zu manipulieren.

Controller existiert zwischen der Ansicht und dem Modell. Es lauscht auf Ereignisse, die durch Ansichten (oder andere externe Quellen) ausgelöst werden, und führt entsprechende Reaktionen auf diese Ereignisse aus. In den meisten Fällen besteht die Reaktion darin, eine Methode für das Modell aufzurufen. Da die Ansicht und das Modell über den Benachrichtigungsmechanismus verbunden sind, werden die Ergebnisse dieses Vorgangs automatisch in der Ansicht widergespiegelt.

Sehen wir uns ein Beispiel des MVC-Entwurfsmusters an.

class Student  
{ 
    private String rollNo; 
    private String name; 
     
    public String getRollNo()  
    { 
        return rollNo; 
    } 
     
    public void setRollNo(String rollNo)  
    { 
        this.rollNo = rollNo; 
    } 
     
    public String getName()  
    { 
        return name; 
    } 
     
    public void setName(String name)  
    { 
        this.name = name; 
    } 
} 
  
class StudentView  
{ 
    public void printStudentDetails(String studentName, String studentRollNo) 
    { 
        System.out.println("学生: "); 
        System.out.println("姓名: " + studentName); 
        System.out.println("编号: " + studentRollNo); 
    } 
} 
  
class StudentController  
{ 
    private Student model; 
    private StudentView view; 
  
    public StudentController(Student model, StudentView view) 
    { 
        this.model = model; 
        this.view = view; 
    } 
  
    public void setStudentName(String name) 
    { 
        model.setName(name);         
    } 
  
    public String getStudentName() 
    { 
        return model.getName();         
    } 
  
    public void setStudentRollNo(String rollNo) 
    { 
        model.setRollNo(rollNo);         
    } 
  
    public String getStudentRollNo() 
    { 
        return model.getRollNo();         
    } 
  
    public void updateView() 
    {                 
        view.printStudentDetails(model.getName(), model.getRollNo()); 
    }     
} 
  
class MVCPattern  
{ 
    public static void main(String[] args)  
    { 
        Student model  = retriveStudentFromDatabase(); 
  
        StudentView view = new StudentView(); 
  
        StudentController controller = new StudentController(model, view); 
  
        controller.updateView(); 
  
        controller.setStudentName("Vikram Sharma"); 
  
        controller.updateView(); 
    } 
  
    private static Student retriveStudentFromDatabase() 
    { 
        Student student = new Student(); 
        student.setName("Lokesh Sharma"); 
        student.setRollNo("15UCS157"); 
        return student; 
    } 
      
}

Ausgabe:

学生: 
姓名: Lokesh Sharma
编号: 15UCS157
学生: 
姓名: Vikram Sharma
编号: 15UCS157

Vorteile

• Mehrere Entwickler können gleichzeitig an Modellen, Controllern und Ansichten arbeiten.

• MVC unterstützt die logische Gruppierung zusammengehöriger Vorgänge auf dem Controller. Ansichten für bestimmte Modelle werden ebenfalls gruppiert.

• Ein Modell kann mehrere Ansichten haben.

Nachteile

• Die Frame-Navigation kann komplex sein, da sie eine neue Abstraktionsebene einführt und vom Benutzer eine Anpassung an die Zerlegungsstandards von MVC erfordert.

• Kenntnisse über mehrere Technologien werden zur Norm. Entwickler, die MVC verwenden, müssen mehrere Technologien beherrschen



Das obige ist der detaillierte Inhalt vonWas ist das MVC-Entwurfsmuster?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn