Model은 Controller와 View에 의존하지 않아야 한다.
- 이말은 즉, 모델 내부에 컨트롤러와 뷰에 관련된 코드가 있으면 안된다는 것이다.
- 이를 확인하는 쉬운 방법은 모델에서 컨트롤러와 뷰 클래스를 import해서 사용하는지 확인하는 것이다.
- 모델은 데이터가 관련된 부분이다 보니언제든 깔끔하고 정제된 데이터를 꺼내 쓸 수 있도록 뷰나 컨트롤러 코드를 섞지 않는 것이 좋다.
public class Friend {
private String name;
private int age;
pubic Friend(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
View는 Model에만 의존해야 하고, Controller에는 의존하면 안된다.
- 즉, 뷰 내부에 모델의 코드만 있을 수 있고 컨트롤러의 코드가 있으면 안된다는 것이다.
- 뷰가 모델로부터 데이터를 받을 때는 사용자마다 다르게 보여줘야 하는 데이터에 대해서만 받아야 한다.
(공통적으로 보여줘야 하는 정보는 모델로부터 전달받는 것이 아닌 뷰가 자체적으로 가지고 있어야 한다.)
public class OutputView {
public void printProfile(Person person) {
System.out.println("이름은 " + person.getName() + " 입니다.");
System.out.println("나이는 " + person.getAge() + " 입니다.");
}
}
Controller는 Model과 View에 의존해도 된다.
- 즉, 컨트롤러 내부에는 모델과 뷰의 코드가 있을 수 있다.
- 뷰가 모델로부터 데이터를 받을 때는 반드시 컨트롤러를 통해 전달 받아야 한다.
public class Controller {
pubic static void main(Stirng[] args) {
Person person = new Person("jolly", 20);
OutputView.printProfile(person);
}
}
Reference
'🕹️ Programming > 개발상식' 카테고리의 다른 글
[디자인패턴] MVC 패턴 (0) | 2023.11.03 |
---|---|
JWT (Json Web Token) (5) | 2022.08.24 |
Cookie & Session 그리고 Cache? (0) | 2022.08.23 |
Authentication & Authorization (0) | 2022.04.04 |