MVC 패턴
MVC 패턴은 Model-View-Controller(Model-View-Controller) 패턴을 의미합니다. 이 패턴은 애플리케이션의 계층화된 개발에 사용됩니다.
Model(모델) - 모델은 데이터에 액세스하는 객체 또는 JAVA POJO를 나타냅니다. 데이터가 변경되면 컨트롤러를 업데이트하는 논리도 있을 수 있습니다.
View - 뷰는 모델에 포함된 데이터의 시각화를 나타냅니다.
Controller - 컨트롤러는 모델과 뷰에 따라 작동합니다. 모델 객체에 대한 데이터 흐름을 제어하고 데이터가 변경되면 뷰를 업데이트합니다. 모델과 뷰를 분리합니다.
Implementation
Student 개체를 모델로 생성하겠습니다. StudentView는 학생 세부 정보를 콘솔에 출력하는 뷰 클래스이고, StudentController는 Student 개체에 데이터를 저장하고 이에 따라 뷰 StudentView를 업데이트하는 컨트롤러 클래스입니다.
MVCPatternDemo, 데모 클래스에서는 StudentController를 사용하여 MVC 패턴의 사용법을 보여줍니다.
1단계
모델을 생성합니다.
Student.java
public 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; } }
2단계
뷰를 생성합니다.
StudentView.java
public class StudentView { public void printStudentDetails(String studentName, String studentRollNo){ System.out.println("Student: "); System.out.println("Name: " + studentName); System.out.println("Roll No: " + studentRollNo); } }
3단계
컨트롤러를 생성합니다.
StudentController.java
public 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()); } }
4단계
StudentController 메서드를 사용하여 MVC 디자인 패턴의 사용법을 보여줍니다.
MVCPatternDemo.java
public class MVCPatternDemo { public static void main(String[] args) { //从数据可获取学生记录 Student model = retriveStudentFromDatabase(); //创建一个视图:把学生详细信息输出到控制台 StudentView view = new StudentView(); StudentController controller = new StudentController(model, view); controller.updateView(); //更新模型数据 controller.setStudentName("John"); controller.updateView(); } private static Student retriveStudentFromDatabase(){ Student student = new Student(); student.setName("Robert"); student.setRollNo("10"); return student; } }
5단계
출력을 확인합니다.
rreee