템플릿 메소드 패턴


Template Method Pattern
(템플릿 메소드 패턴)

행위 패턴(Object Behavioral)

일정한 단계가 있는 알고리즘들을 나눠 공통된 절차를 제외변경 가능성이 있는 부분들을 하위 클래스에서 구체화하는 패턴

// 단계별 구성
public abstract class Life {
    protected abstract String wakeUp();
    protected abstract String eat();
    protected abstract String sleep();

    // 공통된 절차를 지정해 코드 중복 지양
    public void daily() {
        System.out.print(wakeUp());
        System.out.print(eat());
        System.out.print(sleep());
    }
}

// 하위 클래스에서 구체화
public class DogLife extends Life {
    @Override
    protected String wakeUp() { return "왈왈"; }
    @Override
    protected String eat() { return "찹찹"; }
    @Override
    protected String sleep() { return "..."; }
}

public class Main {
    public static void main(String[] args) {
        Life myDog = new DogLife();
        myDog.daily(); // 왈왈찹찹...
    }
}

댓글남기기