[JAVA] 객체지향의 사실과 오해 07 정리

2024-12-04

image.png

💡 Highlight

  • 인터페이스와 구현을 분리하라.

함께 모으기

(1) 개념 관점 : 설게는 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현한다. 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심이다. (2) 명세 관점 : 사용자의 영역인 도메인을 벗어나 개발자의 영역인 소프트웨어로 초점이 옮겨진다. "구현이 아니라 인터페이스에 대해 프로그래밍 하라"를 따르는 것은 명세 관점과 구현 관점을 명확하게 분리하는 것에서부터 시작된다. (3) 구현 관점 : 구현 관점의 초점은 객체들이 책임을 수행하는 데 필요한 동작하는 코드를 작성하는 것이다.

  • 협력 안에서 메시지를 선택하고 메시지를 수신할 객체를 선택하는 것은 객체의 인터페이스, 즉 명세 관점에서 객체를 바라보는 것이다.

설계하고 구현하기

  • 객체의 속성이 캡슐화된다는 이야기는 인터페이스에는 객체의 내부 속성에 대한 어떤 힌트도 제공돼서는 안 된다는 것을 의미한다.

코드와 세 가지 관점

  • 인터페이스와 구현을 분리하라.