많은 사람들이 "수업은 당신의 머리보다 커서는 안된다"고 말합니다.
그러나 저는이 주제에 관해 정말 훌륭한 세계적 수준의 프로그래머들과 토론에 참여했습니다. Naked Objects 녀석들과 이야기를 나 ve습니다. 우리가 알 수있는 한, 때때로, 이런 일이 발생하며, 그 문제를 해결할 방법이 많지 않습니다.
그러나 일반적으로 이런 일이 발생하는 한 클래스는 도메인의 기본 요소 인 은행 계좌, 소매 판매 등을 나타내는 도메인 객체입니다. 다른 클래스에서도 발생하는 경우 그 클래스의 책임을 고려하고 싶습니다. 내 팁은 다음과 같습니다.
- "관리자", "도움말"또는 "서비스"라고하면 기회가 너무 큽니다. 일단 수업의 책임이 무엇인지 알아 내면 다른 책임을 위임하는 것이 더 쉽다는 것을 알게 될 것입니다.
- 그것이 "컨트롤러"라고 불린다면, 다른 많은 클래스들 사이의 상호 작용을 제어 할 책임이 있습니다.
- 이 서로 다른 물리 노드 간 데이터와 메시지를 전달하는 것 경우 중 하나 가 직렬화 된 양식에 특정 메시지를 변환 처리한다, 또는 그것은 전송 메커니즘을 처리합니다. 예를 들어, Bank Transaction을 XML로 변환하는 클래스와 HTTP를 통해 해당 XML을 전송하는 클래스가있을 수 있습니다.
- 응용 프로그램의 다른 모듈간에 이벤트를 전달하는 경우 이벤트가 발생하면 리스너에게 알리고 다른 것은 없습니다.
경험 상으로는 너무 크면 다른 수업에 책임을 위임 할 수 있는지, 그렇지 않은 경우에는 괜찮을 것입니다.