设计模式-行为篇(模板模式)

模板模式

一个抽象类公开定义了执行它的方法的方式/模板。

主要解决:一些方法通用,却在每一个子类都重新写了这一方法。

注意事项:为防止恶意操作,一般模板方法都加上 final 关键词。

/**
 * Created by malei on 2016/12/6.
 * 创建一个抽象类,它的模板方法被设置为 final
 * 父类的方法不实现,留出来让子类去根据自己的需求来实现
 */
public abstract class Game {

    protected abstract void initView();
    protected abstract void startPlay();
    protected abstract void endPlay();

    public final void play(){
        initView();
        startPlay();
        endPlay();
    }
}

/**
 * Created by malei on 2016/12/6.
 */
public class DotaGame extends Game{

    @Override
    protected void initView() {
        Log.show("初始化数据");
    }

    @Override
    protected void startPlay() {
        Log.show("游戏开始");
    }

    @Override
    protected void endPlay() {
        Log.show("游戏结束");
    }

    public static void main(String[] args){
        Game game = new DotaGame();
        game.play();  //调用的父类的方法,但是实现却是子类
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容