디자인 모드 (23) 템 플 릿 모드

1460 단어
템 플 릿 모드 도 행위 형 모델 이 고 이해 하기 쉽다.우리 가 문 제 를 해결 하려 면 몇 가지 절 차 를 고정 시 켜 야 한다. 이런 절차 의 순 서 는 바 꿀 수 없고 절차 의 구체 적 인 실현 이 바 뀔 수 있 을 때 템 플 릿 모델 을 사용 할 수 있다.템 플 릿 모델 의 요점 은 구체 적 인 방법 을 정의 하고 문 제 를 해결 하 는 절 차 를 고정 시 키 는 것 이다. 모든 절 차 는 추상 적 인 방법 으로 구체 적 인 하위 클래스 를 실현 하도록 하 는 것 이다.
다음은 간단 한 예 로 설명 하 겠 습 니 다.우 리 는 밥 을 먹 을 때 채 소 를 사고, 밥 을 하고, 밥 을 먹고, 설 거 지 를 하 는 이 몇 가지 절차 가 필요 하 다.그래서 다음 과 같은 추상 류 를 정의 할 수 있다.

public abstract class HowToMakeMeal {
    public abstract void buyFood();

    protected abstract void makeMeal();

    protected abstract void haveMeal();

    protected abstract void washDished();

    public void doIt() {
        buyFood();
        makeMeal();
        haveMeal();
        washDished();
    }
}

그리고 구체 적 인 자 류 는 해당 하 는 구체 적 인 절 차 를 실현 한다.
class HowToMakeMealImpl extends HowToMakeMeal {

    @Override
    public void buyFood() {
        System.out.println("  ");
    }

    @Override
    public void makeMeal() {
        System.out.println("  ");
    }

    @Override
    public void haveMeal() {
        System.out.println("  ");
    }

    @Override
    public void washDished() {
        System.out.println("  ");
    }
}

그 후에 클 라 이언 트 는 템 플 릿 방법 을 간단하게 호출 하면 주어진 절차 에 따라 문 제 를 해결 할 수 있 습 니 다.
    public void run() {
        HowToMakeMeal howToMakeMeal = new HowToMakeMealImpl();
        howToMakeMeal.doIt();
    }

좋은 웹페이지 즐겨찾기