코드와 세 가지 관점
- 코드는 세 가지 관점(개념 관점, 명세 관점, 구현 관점)을 모두 제공해야 한다
개념 관점
에서 코드를 바라보면 클래스가 보이고 클래스를 자세히 살펴보면 커피 전문점 도메인을 구성하는 중요한 개념과 관계를 반영한다는 사실을 알 수 있음- 소프트웨어 클래스가 도메인 개념의 특성을 최대한 수용하면 변경을 관리하기 쉽고 유지보수성을 향상시킬 수 있음
- 소프트웨어 클래스와 도메인 클래스 사이의 간격이 좁으면 좁을수록 기능을 변경하기 위해 뒤적거려야 하는 코드의 양도 줄어든다
명세 관점
은 클래스의 인터페이스를 바라본다
구현 관점
은 클래스의 내부 구현을 바라본다
- 훌륭한 객체지향 프로그래머는 하나의 클래스 안에 세 가지 관점을 모두 포함 하면서도 각 관점에 대응되는 요소를 명확하고 깔끔하게 드러낼 수 있다.