▲ 그림 4-3 인터페이스로 책임을 분리한다, 구현에 직접 의존하는 대신 DeliveryDetailsPrinter 객체는 인터페이스에 의존한다, DeliveryDetailsPrinter는 특정 구현에 종속되지 않고 이 인터페이스를 구현하는 모든 객체를 사용할 수 있다