더북(TheBook)

이전에 세 클래스에만 의존하던 클래스가 이제 다섯 클래스에 의존하게 됐다. 이는 좋지 않은 상황이다. 이 클래스를 분리하고 일부 의존성을 이동시켜 제어권을 되찾아야 한다.

예를 들어 Bot 인터페이스를 sendPrivateMessage(user id, markdown message)에서 sendPrivateMessage(Message)로 변경할 수 있다. Message 객체에는 사용자의 이메일과 메시지가 포함되어 있다. 이런 변경은 일부 코드의 변경을 야기할 수 있지만, Bot이 여러 곳에 쓰이지 않는다면 관리 가능한 수준일 것이다.

기존 인터페이스를 수정하는 데 비용이 많이 든다면, 의존성을 그룹화하는 래퍼 클래스를 만드는 방법을 시도할 수 있다. 특히 이런 래퍼를 의미 있는 도메인 이름으로 지정할 수 있다면 더욱 좋다. 예를 들어 MessageBot 클래스는 사용자 ID를 읽어와 메시지를 보내는 책임을 결합할 수 있다. 이 클래스는 Message 객체를 파라미터로 받는 send() 메서드만 유일한 메서드로 포함하며, 내부에서는 UserDirectoryBot을 호출한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.