20190124——觉今是而昨非 Java模板模式

在模板模式中,抽象类公开了定义的方法/模板来执行它的方法。它的子类可以根据需要重写方法实现,但调用的方式与抽象类定义的方式相同。此模式属于行为模式类别

实现实例
在这个实现实例中,将创建一个Game抽象类,它定义了一个模板方法设置为final的操作,因此它不能被覆盖。Cricket和Football是扩展Game并覆盖它的方法具体类。

TemplatePatternDemo是一个演示类,将使用Game演示模板
20190124——觉今是而昨非 Java模板模式_第1张图片
20190124——觉今是而昨非 Java模板模式_第2张图片
第一步

package 模板模式;

public abstract class Game {
    abstract void initialize();
    abstract void startPaly();
    abstract void endPlay();

    public final void play(){
        initialize();
        startPaly();
        endPlay();
    }
}

第二步

package 模板模式;

public class Circket extends Game{
    @Override
    void endPlay() {
        System.out.println("Circket Game Finished");
    }

    @Override
    void initialize() {
        System.out.println("Cricket Game Initialize! Start playing");
    }

    @Override
    void startPaly() {
        System.out.println("Cricket Game Started. Enjoy the game!");
    }
}

package 模板模式;

public class Football extends Game {
    @Override
    void startPaly() {
        System.out.println("Football Game Started");
    }

    @Override
    void initialize() {
        System.out.println("Football initialize");
    }

    @Override
    void endPlay() {
        System.out.println("Football endPlay");
    }
}

第三步

package 模板模式;

public class TemplatePatternDemo {
    public static void main(String[] args) {
        Game game =new Circket();
        game.play();

        System.out.println();
        game =new Football();
        game.play();
    }
}

你可能感兴趣的:(20190124——觉今是而昨非 Java模板模式)