1.템플릿 메서드 패턴의 정의
- 템플릿 메서드 패턴은 알고리즘의 골격을 정의합니다. 템플릿 메서드를 사용하면 알고리즘의 일부 단계를 서브 클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브클래스에서 재정의 할 수도 있습니다.
1. 여러개의 비슷하게 만들어지는 클래스들의 공통점을 추출해 하나의 템플릿 메서드를 만든다.
2. 템플릿 메서드는 변경되지 않도록 final로 선언한다.
3. 서브클래스에서 템플릿 메서드 내의 메서드들을 재정의해서 사용가능하고 그냥도 사용 가능하다.
2. 템플릿 메서드 패턴에서의 후크(hook)
- 템플릿 메서드에서 어떤 조건을 충족할때 후크를 통해 메서드를 추가하는 것도 가능하다.
3. 할리우드 원칙 - 내가 먼저 연락하기 전엔 연락하지 마세요
할리우드 원칙은 의존성 부패를 방지할 수 있는 원칙이다. 저수준 구성 요소가 고수준 구성 요소에 결합은 언제든지 가능하지만 언제, 어떻게 사용할지는 고수준 구성요소가 결정한다.
4. 자바 api 에서의 템플릿 메서드 패턴
- 비교 : sort를 사용할 때 Comparable을 사용해서 비교 메서드를 정의해주어야 sort가 가능함. 모든 비교할 추상 객체에 비교 메서드가 구현되어 있지는않기 때문이다.
- read : java.io에서 InputStream의 read() 메서드는 서브클래스에서 구현해주어야한다. read(byte b[], int off, int len) 메서드가 read()를 사용하기 때문이다.
- JFrame에서 paint 메서드를 사용한다.
- AbstractList를 확장하여 원하는 List 생성 가능.
'책 > 헤드퍼스트 디자인패턴' 카테고리의 다른 글
| Chapter 07 어댑터(Adapter)패턴과 파사드(Facade)패턴 (0) | 2025.08.24 |
|---|---|
| Chapter 1 디자인 패턴의 세계로 떠나기 (0) | 2025.07.06 |