더북(TheBook)

예제 2를 위한 리팩토링 제안

이미지 처리 애플리케이션을 위해 ImagePair 클래스를 사용하여 편차 계산과 편차 저장 연산을 캡슐화하는 리팩토링 방식을 제안한다(그림 3.8 참조).

 

▲ 그림 3.8 이미지 처리 애플리케이션을 위한 리팩토링 제안(예제 2)

 

여기서 의문점이 하나 생긴다. ‘편차 계산과 저장이라는 책임을 단일 클래스에서 뒤섞지 않나? SRP를 위반하지는 않나?’ 이 문제를 해소하기 위해 설계를 바라보는 한 가지 방식으로 편차를 저장하는 파일을 실제로 열거나 데이터베이스에 연결을 설정하는 작업을 다른 클래스(여기서는 보여 주지 않았다)에서 캡슐화할 것이라고 생각한다. 따라서 saveOffset() 메서드는 다른 클래스를 호출할 것이다. 다시 말해, ‘편차를 저장하는’ 책임은 ImagePair 클래스에서 실제로 뒤섞이지 않았다.

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