- 부모 클래스에서 알고리즘 골격 정의
- 해당 알고리즘 구조를 변경 않고 자식 클래스가 알고리즘 특정 단계를 오버라이드 가능하게 함
- 핵심 로직을 부모 클래스에서 정의
- 변하는 부분을 자식 클래스나 콜백 인터페이스를 통해 구현 → 코드 재사용성, 유연성 높임
- 변하지 않는 기능(템플릿)은 상위
- 자주 변경, 확장할 기능은 하위
- 상위 메소드 실행 동작 순서 고정하면서 세부 실행은 다양화!
- 템플릿
- 변하지 않는 것
- 상위 클래스는 추상이든 일반이든 노상관
예 - HttpServlet.java