처리기, 관리자 및 컨트롤러의 차이점


21

클래스 "Handler", "Manager"또는 "Controller"의 이름을 지정하는 데 차이가 있습니까? IE : PurchaseManager, PurchaseHandler, PurchaseController.

이러한 충분은 동일한 의미를 전달합니까, 아니면 분명한 차이점이 있습니까?

언어에 구애받지 않는 대답이 없으면 Java를 언어로 고려하십시오.


1
더 많은 맥락이 여기에 도움이 될 것입니다. 많은 (많은!) 프레임 워크는 구별에 대한 명확한 정의를 가지고 있습니다. 그러나이 단어들 뒤에는 보편적 인 정의가 없습니다. 어떤 맥락에서 일하고 있습니까? 어떤 프레임 워크를 사용하고 있습니까? 어떤 언어를 사용하고 있습니까?
S.Lott

명확한 언어.
hpique

답변:


15

일반적으로 '컨트롤러'는 사용자 인터페이스 구성 요소와 모델 (예 : 구매) 간의 인터페이스입니다. 컨트롤러는 씬 클래스이어야하며 사용자 인터페이스 이벤트를 모델 함수에 맵핑하는 것 이상의 역할을 수행해야합니다.

'관리자'는 코드 냄새입니다. 구매 자체를 관리해야하거나 공급 업체 또는 구매자와 같은 소유 클래스에서 관리 할 수 ​​있습니다.

'Handler'는 일반적으로 객체에 래핑 된 단일 함수입니다. 이것들은 일류 함수없이 레거시 언어로 프로그래밍 할 때 필요합니다.


나는 '관리자'라는 개념을 좋아하지 않지만 자체 비즈니스 로직을 처리하지 않는 이유는 프로그래머가 복잡한 비즈니스 운영에서 bean / pojo / dto를 분리하고 싶어한다는 것입니다.
Sridhar Sarnobat

1
언어에 구애받지 않는 관점에서 Manager에 대해 귀하에게 동의하지만, 어떤 경우에는 Manager가 올바른 용어 일 수 있다고 덧붙이고 싶습니다. 예를 들어, 프로토콜 관점에서 관리자에 대해 말하는 것이 좋습니다. SNMP 의 경우 에이전트 세트를 "관리"하는 Manager 가 있습니다 . 이 경우에 올바른 용어입니다. 그러나 이것은 "관리자"의 자발적인 사용을 정당화합니다.
patrik

7

내 대답은 정의를 기반으로하지 않지만 "Controller"라는 레이블이있는 것을 독점 구현 으로 간주 하고 "Handler"는 포괄적 으로 간주 합니다 . "PurchaseController"는 하나만 존재하고 "PurchaseHandler"는 여러 버전이있을 것으로 예상됩니다.

컨트롤러의 또 다른 일반적인 이름은 "브로커 (Broker)"라고 생각합니다.


이러한 정의에 감사드립니다. 몇 줄로 많은 지식을 썼습니다.
acearch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.