이것이 코드 냄새 인 이유는 두 가지가 있습니다. 한 가지 이유는 도메인 객체가 없지만 컨트롤러 또는 관리자 클래스에 의한 조작을 위해 데이터를 저장하는 값 객체가 있다는 의미 일 수 있습니다. 이것은 실제로 매우 일반적이며 OO 언어의 절차 적 프로그래밍에 해당합니다. "많은 관리자"는 실제로 상태 캡슐화를 위해 상태 논리, 유효성 검사 및 기타 직접적인 문제를 도메인 객체에 통합해야한다는 힌트 일 수 있습니다. 물론 getter / setter 이외의 방법이 없다는 사실과 같은 더 큰 힌트가 있습니다.
코드 냄새가 나는 다른 이유는 도메인 객체가 실제로 서로 관련이없는 것을 의미 할 수 있기 때문입니다. 예를 들어 Transaction 클래스에 Transaction이라는 이름을 제외하고 Transaction 클래스에 대해 전혀 알지 못하는 Account 클래스가 있고 그 중 둘 이상이있을 수있는 경우에는 매우 역동적 인 비즈니스 도메인 구현이 없습니다. 예를 들어, SavingsAccount는 accountStatus가 닫히면 DebitTransaction을 승인 할 수 없음을 알아야합니다. 많은 구현은 이것을 관리자에게 맡길 것입니다.