요구 사항을 다시 분석해 보면, 사용 사례가 댓글 저장과 댓글을 이메일로 보내는 두 가지 행동(action)으로 구성되어 있음을 알 수 있다. 이 두 행동은 상당히 상이하므로 서로 다른 두 책임(responsibility)으로 간주하여 두 개의 객체로 구현해야 한다.
데이터베이스와 직접 작업하는 객체가 있을 때 일반적으로 이런 객체 이름을 리포지터리(repository)라고 한다. 때로는 이런 객체를 데이터 액세스 객체(Data Access Object, DAO)라고도 한다. 댓글 저장 기능을 구현하는 객체 이름을 ‘CommentRepository’로 지정해 보자.
마지막으로 실제 앱에서는 앱 외부와 통신을 담당하는 객체를 구현할 때 이런 객체 이름을 프록시(proxy)로 지정하므로 이메일 전송을 담당하는 객체 이름을 CommentNotificationProxy로 지정한다. 다음 그림은 이 세 가지 책임 관계를 보여 준다.