Java設計モードの[ウェルカムインタフェース]分析テンプレート方法(Template Method)モード


テンプレートメソッドは抽象クラスで最も一般的なモードです(1つもないはずです).操作中のアルゴリズムのスケルトンを定義し、いくつかのステップをサブクラスに遅延させ、サブクラスがアルゴリズムの構造を変更せずにアルゴリズムのいくつかのステップを再定義できるようにします.
たとえば、ユーザーが初めてソフトウェアを開いた場合、ウェルカムインタフェースを作成します.多重化を実現するために,このメカニズムをベースクラスとし,Javaコードは以下のようになる.
abstract class FirstLogin{
    abstract protected void showIntro();
    boolean firstLogin;
    public FirstLogin(boolean firstLogin){
        this.firstLogin = firstLogin;
    }
    public void show(){
        if (firstLogin){
            showIntro();
        }
    }
}

class HelloWorld extends FirstLogin{
    public HelloWorld(boolean firstLogin) {
        super(firstLogin);
    }
    protected void showIntro(){
        System.out.println("           ! Hello world!");
    }
}
public class TemplateMethod
{
    public static void main(String[] args) {
        HelloWorld helloWorld1 = new HelloWorld(false);
        System.out.println("HelloWorld 1:");
        helloWorld1.show();
        HelloWorld helloWorld2 = new HelloWorld(true);
        System.out.println("HelloWorld 2:");
        helloWorld2.show();
    }
}

FirstLoginのshowメソッドはテンプレートメソッドです.showIntroという抽象的な方法で歓迎インタフェースが現れるアルゴリズムを定義し,そのサブクラスは将来showIntro法を実現する.すなわち,ベースクラスは不変の部分を実現するために用いられ,可変の部分をサブクラスに残すのは,非常に一般的なモードである.