반응형
템플릿 메소드 패턴
1. 정의
- 알고리즘의 골격을 정의
- 템플릿 메소드를 사용하면 알고리즘의 일부 단계를 서브 클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브클래스에서 재정의 가능
할리우드 원칙 (hollywood principle)
1. 정의
- 저수준 구성 요소가 시스템에 접속할 수는 있지만 언제 어떻게 그 구성 요소를 사용할지는 고수준 구성 요소가 결정한다.
- 즉, 고수준 구성 요소가 저수준 구성 요소에게 '먼저 연락하지 마세요. 제가 먼저 연락드리겠습니다'와 동일하다.
2. 할리우드 원칙 vs 의존성 뒤집기 원칙
- 의존성 뒤집기 원칙 : 될 수 있으면 구상 클래스 사용 줄이고 추상화된 것 사용해야 한다는 원칙
- 할리우드 원칙 : 저수준 구성 요소가 컴퓨테이션에 참여한다면서도 저수준 구성 요소와 고수준 계층 간 의존 없애도록 프레임워크나 구성 요소 구축한다는 것.
> 객체를 분리한다는 하나의 목표 공유하지만, 의존성 피하는 방법에 있어서 의존성 뒤집기 원칙이 훨낀 강하다
cf) 템플릿 메소드 패턴 vs 전략 패턴 vs 팩토리 메소드 패턴
- 템플릿 메소드 패턴 : 알고리즘의 어떤 단계를 구현하는 방법을 서브클래스에서 결정
- 전략 패턴 : 바꿔쓸 수 있는 행동 캡슐화하고, 어떤 행동 사용할지는 서브클래스에 맡김
- 팩토리 메소드 패턴 : 구상 클래스의 인스턴스 생성을 서브 클래스에서 결정
반응형
'꿀팁' 카테고리의 다른 글
[헤드퍼스트 디자인패턴] chapter10.상태 패턴 (0) | 2023.11.27 |
---|---|
[헤드퍼스트 디자인패턴] chapter9. 컬렉션 잘 관리하기 (반복자 패턴 Iterator pattern, 단일 역할 원칙, 컴포지트 패턴) (0) | 2023.11.27 |
[헤드퍼스트 디자인패턴] chapter7.어댑터 패턴과 퍼사드 패턴 (어댑터 패턴, 퍼사드 패턴, 최소 지식 원칙, 데메테르 법칙) (0) | 2023.11.13 |
intellij. 서식 지우고 복사하는 법 (copy as plain text) (0) | 2023.10.27 |
chatgpt 통해 백엔드 기술면접/임원면접 준비하기 (0) | 2023.10.12 |