728x90
반응형
✅ 템플릿 메서드 패턴이란?
템플릿 메서드 패턴이란 특정 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체적인 구조는 바꾸지 않고, 특정 단계에서 수행하는 내용을 바꾸는 패턴이다.
즉, 동일한 기능을 상위 클래스에서 정의하면서 확장/수정이 필요한 부분만 서브 클래스에서 오버라이딩으로 구현하도록 만든다. 예를 들어, 전체 로직은 상위 클래스에서 구현하고, 나머지 부분은 하위 클래스에서 구현하도록 만들어서 코드의 재사용성을 높이는 것이다.
[ 구조 ]
[ 장단점 ]
장점
1. 코드의 재사용성을 높여 중복 코드를 줄일 수 있다.
2. 하위 클래스의 역할을 줄여 핵심 로직의 관리가 용이하다.
3. 객체지향적으로 코드를 구성할 수 있다.
단점
1. 추상 메서드가 많아지면서 클래스 관리가 복잡해진다.
[ 예제 코드 ]
abstract class SmartPhone {
public void TurnOn() { System.out.println("전원을 실행시킵니다."); }
public void TurnOff() { System.out.println("전원을 종료합니다."); }
abstract String company();
}
class Galaxy extends SmartPhone {
@Override
public String company() {
return "SAMSUNG";
}
}
class iPhone extends SmartPhone {
@Override
public String company() {
return "APPLE";
}
}
public class TemplateMethodPattern {
public static void main(String[] args) {
Galaxy zFlip3 = new Galaxy();
iPhone iphone_pro = new iPhone();
System.out.println(zFlip3.company());
System.out.println(iphone_pro.company());
}
}
// 출력결과
SAMSUNG
Apple
위의 예제 코드는 추상 클래스인 SmartPhone과 이를 상속하고 있는 Galaxy, iPhone 클래스가 있다. 3개의 클래스를 해석해보면 아래와 같이 정리할 수 있다.
1. 공통 메서드인 TurnOn, TurnOff 메서드는 추상 클래스에서 구현
2. 추상 메서드 company()는 2개의 하위 클래스에서 오버라이딩을 통해 구현
결국, 추상 클래스에서 함수의 기본 틀을 정의하고, 공통 알고리즘을 구성한 뒤, 하위 클래스에서 추상 메서드를 상속받아 구현해야 할 기능을 정의한다. 이러한 과정이 템플릿 메서드 패턴을 적용한 코드가 된다.
728x90
반응형
'Developer's_til > 그외 개발 공부' 카테고리의 다른 글
[Java] Optional이란? 개념과 사용법 - 1 (0) | 2022.01.03 |
---|---|
[Design Pattern] 컴포지트 패턴(Composite Pattern)이란 (0) | 2021.12.31 |
[Java] 제네릭(generic)이란? (0) | 2021.12.29 |
[Java] Lambda Expression(람다 표현식) (0) | 2021.12.27 |
웹훅[Webhook]이란 무엇일까? (0) | 2021.10.24 |