개발/Java
디자인 패턴 - MVC 패턴
dev-bleck
2022. 11. 6. 22:58
MVC 패턴이란?
Model - View - Controller Pattern. 애플리케이션의 관심사를 분리하는 목적으로 사용됨. 코드 간의 구분을 명확히 하여 코드가 용이하고 유지보수가 수월함.
Model : 데이터를 전달하는 객체. 데이터 처리 영역.
View : Model에 포함된 데어터의 시각화를 담당.
Controller : Model로부터 데이터의 흐름을 제어하고, 데이터가 변경될 때마다 View를 업데이트함.
MVC 패턴을 이용한 Student 객체 구현
Step 1. Model : Student.java
public class Student {
private String rollNo; // 학생 번호
private String name; // 학생 이름
// gettern & setter
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;
}
}
Step 2. View : 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);
}
}
Step 3. Controller : 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());
}
}
Step 4. MVCPatternDemo.java
public class MVCPatternDemo {
public static void main(String[] aregs) {
Student model = retriveStudentFromDatabase();
Student view = new StudentView();
StudentController controller = new StudentController(model, view);
controller.updateView();
controller.setStudentNmae("John");
controller.updateView();
}
private static Student retriveStudentFromDatabase() {
Studen student = new Student();
student.setName("Robert");
student.setRollNo("10");
return student;
}
}
Return
Student:
Name: Robert
Roll No: 10
Student:
Name: John
Roll No: 10
참고 URL
- https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
728x90