앞에서 봤던 다이어그램을 개선해보자.
위 문제의 유스케이스는 여행객은, 여행길을 선택하기 위해, 정해진 날짜에 자전거를 빌리고, 여행길 목록을 보고 싶어함
첫번쨰 그림은
두번째 그림은
빌릴 수 있는 자전거를 찾아야하는 책임을 Trip에서 Bicycle로 옮겼지만
위 2가지 디자인 모두 재사용 어려움, 변경도 어려움, 단일 책임 원칙 위반
다시 정리해보자.
Customer, Trip, Bicycle이 교차하는 지점에서 여행을 찾아 줄 객체가 필요. suitable_trips 메서드는 이 객체의 퍼블릭 인터페이스의 한 부분을 차지할거임
TripFinder는
애플리케이션의 특징을 드러내는 것은 인터페이스 테스트보다 다른 어떤 코드 보다 인터페이스가 중요
퍼블릭 인터페이스의 메서드
퍼블릭 인터페이스를 구성할 경우 다른 객체와 연계되어 있는 맥락을 최소화 하자
앞의 예제에서 봤듯이
객체 지향 App은 객체들이 서로 주고받는 메시지
를 통해 정의됨
이 메세지들은 퍼블릭 인터페이스를 타고 흐름
메시지에 집중하면, 예전에는 미처 파악하지 못한 객체를 찾을 수 있음 메시지가 ‘수신자가 어떻게 행동해야 하는지’를 알려주기보다 수신자를 믿고 전송자가 원하는 것(무엇)을 말한다면, 객체는 자연스럽게 퍼블릭 인터페이스를 발전시키기 됨121221