parameter
: 매개변수. 메서드의 입력 '변수'.argument
: 인자. 메서드의 입력 '값'.메서드 선언부의 method(String s) {...}
변수 s는 parameter
.
메서드 호출부에서 입력되는 method("abc");
"abc"는 argument
.
클래스와 메서드를 나누다보니 자바의 MVC패턴에 대해 공부해야 할 필요성이 느껴졌다.
그래서 [10분 테코톡] - 🧀제리의 MVC 패턴을 보고 정리해보았다.
쉽게 말해 모델 내부에 컨트롤러나 뷰와 관련된 코드가 있으면 안된다.
ex)
public class Student {
private String name;
private int age;
public Student(String name, int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
public String getName() {
return name;
}
}
위의 Student 클래스는 모델로서, 데이터에 관련된 코드만 가지고 있다.
뷰 내부에는 모델의 코드만 있을 수 있고 컨트롤러의 코드가 있어선 안된다.
ex)
public class OutputView {
public static void printProfile(Stduent student) {
System.out.println("이름 : " + student.getName());
System.out.println("나이 : " + student.getAge());
}
}
파라미터로 모델인 Stduent를 받는 걸 볼 수 있다. 이건 모델에 관련된 코드니까 괜찮다. 하지만 컨트롤러와 관련된 코드는 없어야 한다.
사용자마다 다르게 보여줘야 하는부분과 똑같이 보여주는 부분이 있다. 이때 다르게 보여줘야 하는 정보들은 뷰에서 모델로부터 정보를 받겠지만, 똑같이 보여줘야 하는 부분들은 뷰가 자체적으로 가지고 있어야 한다. 이걸 모델로부터 받아오면 안된다는 것이다.
ex) 인터넷 주문 화면
주문자 정보 - 모델로부터 받아오는 정보
그 외 화면 출력할 static한 정보 - 뷰가 가지고 있어야 할 정보.
컨트롤러는 뷰와 모델의 중개자로서 전체 로직을 구성하기 때문.
ex)
public class Controller {
public static void main(String[] args) {
Student student = new Student("기철", 25);
OutputView.printProfile(student);
}
}