🕹️ Programming/개발상식

MVC를 지키면서 코딩하는 방법

an2z 2022. 11. 15. 13:15

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

[10분 테코톡] 제리의 MVC 패턴