하지만 잠깐! 구현 간에 직접적으로 결합하면 안 된다고 말하지 않았나? 인터페이스를 사용하여 구현을 분리해야 한다. 이제 드디어 CommentRepository는 데이터베이스로 댓글을 저장할 수 있다. 그러나 향후에는 다른 기술이나 외부 서비스를 사용하도록 변경해야 할 수도 있다. CommentNotificationProxy 객체도 마찬가지다. 지금은 이메일로 알림을 보내지만 향후 버전에서는 다른 채널로 댓글 알림을 보내야 할 수도 있다. 우리는 의존성을 변경해야 할 때 의존성을 사용하는 객체까지 변경할 필요가 없도록 CommentService를 의존성 구현과 확실하게 분리해야 한다.