템플릿 메소드(Template Method) 패턴 : 행동패턴
상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 한다.
평소에도 사용하던 방법이었는데, 이게 패턴이었다고..?
슈퍼 클래스에 기본적인 로직의 흐름을 만들고, 그 기능의 일부를 추상 메소드나 오버라이딩이 가능한 prtected 메소드 등으로 만든 뒤 서브 클래스에서 이런 메소드를 필요에 맞게 구현해서 사용하는 방법이다.
-토비의 스프링에서-
예제를 확인해보면 단번에 이해가 될 것이다.
Car 클래스
public abstract class Car {
// 선택적으로 오버라이드 가능한 훅 메소드
protected void startUp(){ }
// 서브클래스에서 반드시 구현해야 하는 추상 메소드
abstract void drive();
}
Martiz 클래스 (Car 상속)
public class Matiz extends Car {
@Override
public void drive() {
System.out.println("마티즈로 드라이브 중 ~");
}
}
Lay 클래스 (Car 상속)
public class Lay extends Car {
@Override
public void startUp(){
System.out.println("레이 시동을 겁니다 ~");
}
@Override
public void drive() {
System.out.println("레이로 드라이브 중 ~");
}
}

'OOP > Design Pattern' 카테고리의 다른 글
05. 프로토타입(Prototype) 패턴 (0) | 2023.02.13 |
---|---|
04. 빌더(Builder) 패턴 (0) | 2023.02.13 |
03. 추상 팩토리(Abstract Method) 패턴 (0) | 2023.02.13 |
02. 팩토리 메서드(Factory Method) 패턴 (0) | 2023.02.13 |
00. GoF 디자인 패턴 (0) | 2023.02.13 |
템플릿 메소드(Template Method) 패턴 : 행동패턴
상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 한다.
평소에도 사용하던 방법이었는데, 이게 패턴이었다고..?
슈퍼 클래스에 기본적인 로직의 흐름을 만들고, 그 기능의 일부를 추상 메소드나 오버라이딩이 가능한 prtected 메소드 등으로 만든 뒤 서브 클래스에서 이런 메소드를 필요에 맞게 구현해서 사용하는 방법이다.
-토비의 스프링에서-
예제를 확인해보면 단번에 이해가 될 것이다.
Car 클래스
public abstract class Car {
// 선택적으로 오버라이드 가능한 훅 메소드
protected void startUp(){ }
// 서브클래스에서 반드시 구현해야 하는 추상 메소드
abstract void drive();
}
Martiz 클래스 (Car 상속)
public class Matiz extends Car {
@Override
public void drive() {
System.out.println("마티즈로 드라이브 중 ~");
}
}
Lay 클래스 (Car 상속)
public class Lay extends Car {
@Override
public void startUp(){
System.out.println("레이 시동을 겁니다 ~");
}
@Override
public void drive() {
System.out.println("레이로 드라이브 중 ~");
}
}

'OOP > Design Pattern' 카테고리의 다른 글
05. 프로토타입(Prototype) 패턴 (0) | 2023.02.13 |
---|---|
04. 빌더(Builder) 패턴 (0) | 2023.02.13 |
03. 추상 팩토리(Abstract Method) 패턴 (0) | 2023.02.13 |
02. 팩토리 메서드(Factory Method) 패턴 (0) | 2023.02.13 |
00. GoF 디자인 패턴 (0) | 2023.02.13 |