3.2.2 분리와 재사용을 위한 디자인 패턴 적용

비슷한 기능의 메소드에서 동일하게 나타나는 변하지 않고 고정되는 부분과, 각 메소드마다 로직에 따라 변하는 부분 구분

  1. 메소드 추출
  2. 템플릿 메소드 패턴 적용
    • 상속을 통해 기능을 확장해서 사용
전략 패턴의 적용

확장에 해당하는 변하는 부분을 별도의 클래스로 만들어 추상화된 인터페이스를 통해 위임하는 방식

3.5 템플릿과 콜백

템플릿/콜백 패턴

  • 복잡하지만 바뀌지 않는 일정한 패턴을 갖는 작업 흐름이 존재하고, 그중 일부분만 자주 바꿔서 사용해야 하는 경우에 적합한 구조

템플릿

고정된 틀 안에 바꿀 수 있는 부분을 넣어서 사용하는 경우 고정된 작업 흐름을 가진 코드를 재사용한다는 의미

콜백

실행되는 것을 목적으로 다른 오브젝트의 메소드에 전달되는 오브젝트 템플릿 안에서 호출되는 것을 목적으로 만들어진 오브젝트

이일민, [토비의 스프링 3.1], 에이콘 출판사(2012)