ホームページ  >  記事  >  Java  >  テンプレート

テンプレート

Linda Hamilton
Linda Hamiltonオリジナル
2024-09-22 22:16:02604ブラウズ

テンプレート

テンプレートは動作設計パターンの 1 つであり、抽象クラスはそのメソッドを実行するための一連の方法/テンプレートを定義します。

そのサブクラスはこれらのメソッドをオーバーライド/実装できますが、呼び出しは抽象クラスで定義されたのと同じ方法で行われます

これを例で理解してみましょう:

主要な概念
テンプレート: アルゴリズムの構造/方法/テンプレートを定義する抽象クラス
具体的な実装: テンプレートの具体的な実装
クライアント: このテンプレートを使用するクライアント

public abstract class Gameテンプレート{
    //these below methods can be overridden based on the type of game
    public abstract void initialize();
    public abstract void startPlay();
    public abstract void  endPlay();

    //All the subclasses must use this same method to play the game i.e. following the same template present in this method,
    //Hence it is declared as final.
    public final void play(){
        initialize();
        startPlay();
        endPlay();
    }
}

public class Cricket extends Gameテンプレート{


    @Override
    public void initialize(){
        System.out.println("Cricket has been initialized");
    }
    @Override
    public void startPlay(){
        System.out.println("Cricket game has been started");
    }
    @Override
    public void endPlay(){
        System.out.println("Cricket game has ended");
    }

}

public class Football extends Gameテンプレート{

    @Override
    public void initialize(){
        System.out.println("Football has been initialized");
    }
    @Override
    public void startPlay(){
        System.out.println("Football game has been started");
    }
    @Override
    public void endPlay(){
        System.out.println("Football game has ended");
    }

}

public class Main{
    public static void main(String args[]){

        //Create a football game object 
        Gameテンプレート football = new Football();
        football.play();// play() will strictly follow the sequence of method execution defined in the final play() method

        Gameテンプレート cricket = new Cricket();
        cricket.play();
    }
}

出力:

Football has been initialized
Football game has been started
Football game has ended
Cricket has been initialized
Cricket game has been started
Cricket game has ended

注: コードは、LSP、ISP、SRP、OCP などのすべての設計原則に従っています

以上がテンプレートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:プロキシ次の記事:プロキシ