템플릿 메서드 패턴
- 상위 클래스의 견본 메서드에서 하위 클래스가 오버라이딩한 메서드를 호출하는 패턴
- 의존 역전 원칙(DIP)을 활용
- 상위 클래스 Animal에는 템플릿을 제공하는 playWithOwner() 메서드와 하위 클래스에게 구현을 강제하는 play() 추상메서드, 하위 클래스가 선택적으로 오버라이딩 할 수 있는 runSomething() 메서드가 있다.
- 하위 클래스인 Dog와 Cat은 상위클래스인 Animal에서 구현을 강제하고 있는 play() 추상메서드 반드시 구현
- runSomething() 메서드는 선택적으로 오버라이딩할 수 있다.
- 상위 클래스에 공통 로직을 수행하는 템플릿 메서드와 하위 클래스에 오버라이딩을 강제하는 추상메서드 또는 선택적으로 오버라이딩할 수 있는 훅(Hook) 메서드를 두는 패턴을 템플릿 메서드 패턴이라 한다.
팩터리 메서드 패턴(Factory Method Pattern)
- 하위 클래스에서 팩터리 메서드를 오버라이딩해서 객체를 반환하는 패턴
- 의존 역전 원칙(DIP)을 활용한다.
전략 패턴(Strategy Pattern)
- 클라이언트가 전략을 생성해 전략을 실행할 컨텍스트에 주입하는 패턴
- 개방 폐쇄 원칙(OCP)과 의존 역전 원칙(DIP) 활용
- 단일 상속만 가능한 자바에서는 상속이라는 제한이 있는 템플릿 메서드 패턴보다는 전략 패턴 활용
- 전략 메서드를 가진 전략 객체
- 전략 객체를 사용하는 컨텍스트(전략 객체의 사용자)
- 전략 객체를 생성해 컨텍스트에 주입하는 클라이언트(제3자, 전략 객체의 공급자)
템플릿 콜백 패턴(Template Callback Pattern - 견본/회신 패턴)
- 전략 패턴을 익명 내부 클래스로 구현한 전략 패턴
- 전략 패턴의 변형으로 스프링 모델 중 하나인 DI(의존성 주입)에서 사용하는 특별한 형태의 전략 패턴
- 개방 폐쇄 원칙(OCP)과 의존 역전 원칙(DIP) 적용
참고 자료
- 스프링 입문을 위한 자바 객체 지향의 원리와 이해, 위키북스, 김종민(지은이)
'Java' 카테고리의 다른 글
[Java] GUI 계산기 만들기(2) 키보드 (0) | 2020.05.27 |
---|---|
[Java] GUI 계산기 만들기(1) (1) | 2020.05.21 |
[Java] 어댑터 패턴, 프록시 패턴, 데코레이터 패턴, 싱글턴 패턴 (0) | 2020.05.14 |
[Java] 객체지향 5원칙 SOILD (0) | 2020.05.14 |
[Java] JVM 메모리 사용 방식 (0) | 2020.05.11 |