일반적으로 파일 핸들이나 (예) 유닉스 프로세스를 다루지 않는 한 "핸들"또는 "프로세스"와 같은 단어를 루틴 이름 및 클래스 이름의 일부로 사용하지 않는 것이 좋습니다. 그러나 추상 클래스는 종종 처리 이외의 작업으로 무엇을 할 것인지 실제로 모릅니다. 현재 상황에서는 사용자의받은 편지함에 로그인하여 메시지를 처리하는 "EmailProcessor"가 있습니다. 다음과 같은 스타일 문제가 발생했음을 알았지 만 더 정확한 이름을 지정하는 방법은 나에게 분명하지 않습니다.
- 파생 클래스를 클라이언트로 취급하고 구현하는 기능의 일부로 기본 클래스를 명명하는 것이 더 낫습니까? 더 의미가 있지만 is-a를 위반합니다. 예를 들어 EmailAcquirer는 파생 클래스를 획득하기 때문에 합리적인 이름이 될 수 있지만 파생 클래스는 누구에게도 획득하지 않습니다.
- 또는 파생 클래스가 무엇을하는지 누가 알기 때문에 막연한 이름입니다. 그러나 "프로세서"는 로그인 및 IMAP 사용과 같은 많은 관련 작업을 수행하기 때문에 여전히 너무 일반적입니다.
이 딜레마에서 벗어날 수있는 방법이 있습니까?
"이것이 무엇을 하는가?"라는 질문에 실제로 대답 할 수없는 추상적 인 방법에는 문제가 더 분명합니다. 대답은 단순히 "고객이 원하는 것"이기 때문입니다.