개발/꿀팁

[헤드퍼스트 디자인패턴] chapter8. 템플릿 메소드 패턴 (템플릿 메소드패턴, 할리우드원칙)

ttoance 2023. 11. 14. 06:32
템플릿 메소드 패턴 

1. 정의 

- 알고리즘의 골격을 정의 

- 템플릿 메소드를 사용하면 알고리즘의 일부 단계를 서브 클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브클래스에서 재정의 가능 

 

할리우드 원칙 (hollywood principle)

1. 정의 

- 저수준 구성 요소가 시스템에 접속할 수는 있지만 언제 어떻게 그 구성 요소를 사용할지는 고수준 구성 요소가 결정한다. 

- 즉, 고수준 구성 요소가 저수준 구성 요소에게 '먼저 연락하지 마세요. 제가 먼저 연락드리겠습니다'와 동일하다.

 

2. 할리우드 원칙 vs 의존성 뒤집기 원칙 

- 의존성 뒤집기 원칙 : 될 수 있으면 구상 클래스 사용 줄이고 추상화된 것 사용해야 한다는 원칙

- 할리우드 원칙 : 저수준 구성 요소가 컴퓨테이션에 참여한다면서도 저수준 구성 요소와 고수준 계층 간 의존 없애도록 프레임워크나 구성 요소 구축한다는 것. 

> 객체를 분리한다는 하나의 목표 공유하지만, 의존성 피하는 방법에 있어서 의존성 뒤집기 원칙이 훨낀 강하다 

 

cf) 템플릿 메소드 패턴 vs 전략 패턴 vs 팩토리 메소드 패턴

- 템플릿 메소드 패턴 : 알고리즘의 어떤 단계를 구현하는 방법을 서브클래스에서 결정

- 전략 패턴 : 바꿔쓸 수 있는 행동 캡슐화하고, 어떤 행동 사용할지는 서브클래스에 맡김

- 팩토리 메소드 패턴 : 구상 클래스의 인스턴스 생성을 서브 클래스에서 결정 

 

 

 

 

반응형