Controller 클래스에서 직접 DAO가 호출되고 Model 클래스에서 DAO가 호출되는 DAO에 대한 다양한 주장을 보았습니다. 사실 개인적으로 MVC 패턴을 따르는 경우 컨트롤러가 DAO와 결합해서는 안되지만 Model 클래스는 내부에서 DAO를 호출하고 컨트롤러가 모델 클래스를 호출해야합니다. 왜냐하면, 우리는 웹 애플리케이션과 분리하여 모델 클래스를 분리하고 REST 서비스가 모델 클래스를 사용하는 것과 같은 다양한 방법으로 기능을 노출 할 수 있습니다.
컨트롤러에서 DAO 호출을 작성하면 REST 서비스가 기능을 올바르게 재사용 할 수 없습니까? 아래 두 가지 접근 방식을 요약했습니다.
접근법 # 1
public class CustomerController extends HttpServlet {
proctected void doPost(....) {
Customer customer = new Customer("xxxxx","23",1);
new CustomerDAO().save(customer);
}
}
접근법 # 2
public class CustomerController extends HttpServlet {
proctected void doPost(....) {
Customer customer = new Customer("xxxxx","23",1);
customer.save(customer);
}
}
public class Customer {
...........
private void save(Customer customer){
new CustomerDAO().save(customer);
}
}
참고 -
Model 정의는 다음과 같습니다.
모델 : 모델은 응용 프로그램 도메인의 동작 및 데이터를 관리하고 해당 상태에 대한 정보 요청 (일반적으로보기)에 응답하고 상태 변경에 대한 지시 (일반적으로 컨트롤러)에 응답합니다.
이벤트 중심 시스템에서 모델은 정보가 변경 될 때 관찰자 (일반적으로보기)에게 반응 할 수 있도록 알립니다.
나는 # 1 또는 # 2를 사용하는 많은 사람들을 발견하기 때문에 이것에 대한 전문가 의견이 필요할 것입니다.