JAVA
[디자인 패턴] day 9
Potato potage
2023. 8. 9. 23:32
반응형
<< 스프링 입문을 위한 자바 객체 지향의 원리와 이해 >> 를 읽고 정리합니다.
1. 데코레이터 패턴(Decorator Pattern)
- 도장/도배업자, 장식자
- 원본에 장식을 더하는 패턴
- 프록시 패턴과 구현 방법 동일
- 프록시 패턴은 클라이언트가 최종적으로 돌려 받는 반환값 조작x 그대로 전달
- 데코레이터 패턴은 클라이언트가 받는 반환값에 장식을 덧입힘
- "메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴"
- OCP, DIP 적용
2. 싱글턴 패턴(Singleton Pattern)
- 인스턴스를 하나만 만들어 사용
- 필요 요소
- new를 실행할 서 없도록 생성자에 private 접근 제어자를 지정
- 유일한 단일 객체를 반환할 수 있는 정적 메서드 필요
- 유일한 단일 객체를 참조할 정적 참조 변수 필요
- 특징
- private 생성자를 갖는다.
- 단일 객체 참조 변수를 정적 속성으로 갖는다.
- 단일 객체 참조 변수가 참조하는 단일 객체를 반환하는 getInstance() 정적 메서드를 갖는다.
- 단일 객체는 쓰기 가능한 속성을 갖지 않는 것이 정석이다.
3. 템플릿 메서드 패턴(Template Method Pattern)
- 상위 클래스에 공통 로직을 수행하는 템플릿 메서드와 하위 클래스에 오버라이딩을 강제하는 추상 메서드 또는 선택적으로 오버라이딩할 수 있는 훅(Hook) 메서드를 두는 패턴을 템플릿 메서드 패턴이라 한다.
4. 팩토리 메서드 패턴(Factory Method Pattern)
- 공장을 의미한다.
- 객체를 생성 반환하는 메서드를 의미 + Pattern (하위 클래스에서 팩터리 메서드를 오버라이딩해서 객체를 반환)
- "오버라이드된 메서드가 객체를 반환하는 패턴"
5. 전략 패턴(Strategy Pattern)
- 구성 요소
- 전략 메서드를 가진 전략 객체
- 전략 객체를 사용하는 컨텍스트(전략 객체의 사용자/소비자)
- 전략 객체를 생성해 컨텍스트에 주입하는 클라이언트(제3자, 전략 객체의 공급자)
- 템플릿 메서드와 유사
- 템플릿 메서드 패턴(상속)
- 전략 패턴(객체 주입)
6. 템플릿 콜백 패턴(Template Callback Pattern)
- 전략 패턴의 변형, 스프링 DI에서 사용
- 전략을 익명 내부 클래스로 정의해서 사용
반응형