하나의 컨트롤러에서 검색 논리를 처리하고 검색을 기반으로 일부 데이터를 생성하고 통계로 반환하는 경우가 있습니다.
다른 컨트롤러에서 컨트롤러 기능을 호출하는 것이 좋습니다? 아니면 두 컨트롤러가 절대 '토론'해서는 안됩니까?
하나의 컨트롤러에서 검색 논리를 처리하고 검색을 기반으로 일부 데이터를 생성하고 통계로 반환하는 경우가 있습니다.
다른 컨트롤러에서 컨트롤러 기능을 호출하는 것이 좋습니다? 아니면 두 컨트롤러가 절대 '토론'해서는 안됩니까?
답변:
대답은 사용하는 언어 / 프레임 워크에 따라 다르지만 다소 이상합니다. 언어 / 프레임 워크마다 MVC에 대한 접근 방식이 다릅니다.
일반적으로 다음과 같은 이유로 다른 컨트롤러를 사용하지 않습니다.
컨트롤러는 일반적으로 MVC 프레임 워크에서 사용하려는 형식의 결과를 반환합니다. 이 결과에는 호출자로서 필요하지 않은 많은 정보 (예 : 뷰 이름)가 포함되어 있으며 관심있는 정보를 쉽게 얻을 수있는 것은 아닙니다 (귀하의 경우 내가 맞다면 모델).
컨트롤러는 종종 HTTP 요청 및 컨텍스트에 대한 정보가 필요하기 때문에 비즈니스 코드에서 초기화하기가 쉽지 않습니다. 이 모든 정보는 MVC 프레임 워크에 의해 전달 될 것으로 예상됩니다.
더 중요한 것은 두 컨트롤러에 여러 검색 결과가 필요한 경우 하나는 최종 사용자에게 결과를 표시하고 다른 하나는 통계를 생성하는 컨트롤러로 비즈니스 로직에 검색 로직을 넣는 것입니다. ) 컨트롤러를 최대한 작게 유지하십시오.
MVC에서 컨트롤러의 역할은 프로세스를 조정하는 것입니다.
컨트롤러의 역할은 비즈니스 로직을 다루지 않습니다.
코드가 비즈니스 계층으로 이동 한 후에는 한 컨트롤러를 다른 컨트롤러에서 사용하는 것과 달리 명확하고 간단한 방식으로 재사용 할 수있는 검색 인터페이스를 제공 할 수 있습니다.