개발/꿀팁
[헤드퍼스트 디자인패턴] chapter8. 템플릿 메소드 패턴 (템플릿 메소드패턴, 할리우드원칙)
ttoance
2023. 11. 14. 06:32
템플릿 메소드 패턴
1. 정의
- 알고리즘의 골격을 정의
- 템플릿 메소드를 사용하면 알고리즘의 일부 단계를 서브 클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브클래스에서 재정의 가능
할리우드 원칙 (hollywood principle)
1. 정의
- 저수준 구성 요소가 시스템에 접속할 수는 있지만 언제 어떻게 그 구성 요소를 사용할지는 고수준 구성 요소가 결정한다.
- 즉, 고수준 구성 요소가 저수준 구성 요소에게 '먼저 연락하지 마세요. 제가 먼저 연락드리겠습니다'와 동일하다.
2. 할리우드 원칙 vs 의존성 뒤집기 원칙
- 의존성 뒤집기 원칙 : 될 수 있으면 구상 클래스 사용 줄이고 추상화된 것 사용해야 한다는 원칙
- 할리우드 원칙 : 저수준 구성 요소가 컴퓨테이션에 참여한다면서도 저수준 구성 요소와 고수준 계층 간 의존 없애도록 프레임워크나 구성 요소 구축한다는 것.
> 객체를 분리한다는 하나의 목표 공유하지만, 의존성 피하는 방법에 있어서 의존성 뒤집기 원칙이 훨낀 강하다
cf) 템플릿 메소드 패턴 vs 전략 패턴 vs 팩토리 메소드 패턴
- 템플릿 메소드 패턴 : 알고리즘의 어떤 단계를 구현하는 방법을 서브클래스에서 결정
- 전략 패턴 : 바꿔쓸 수 있는 행동 캡슐화하고, 어떤 행동 사용할지는 서브클래스에 맡김
- 팩토리 메소드 패턴 : 구상 클래스의 인스턴스 생성을 서브 클래스에서 결정
반응형