Java

추상클래스 - 템플릿 메서드

snail voyager 2020. 9. 3. 22:50
728x90
반응형

Temlpate Method

추상 메서드나 구현된 메서드를 활용하여 전체의 흐름(시나리오)를 정의해 놓은 메서드
final로 선언하여 재정의 할 수 없게 함

Template Method Pattern

  • 디자인 패턴의 일종
  • 프레임워크에서 많이 사용되는 설계 패턴
  • 추상클래스로 선언된 상의 클래스에서 추상메서드를 이용하여 전체 구현의 흐름을 정의하고 구체적인 각 메서드 구현은 하위 클래스에 위임
  • 하위 클래스가 다른 구현을 해도 템플릿 메서드에 시나리오 대로 수행됨
public abstract class Car{
    public abstract void drive();    //하위 클래스에서 구현
    public abstract void stop();

    public void start(){            //공통 로직
        System.out.println("start");
    }

    public void turnoff(){
        Systemout.println("turn off");
    }

    final public void run(){        //템플릿 메서드 (정해진 시나리오)
        start();
        drive();
        stop();
        turnoff();
    }

}
728x90
반응형