您的位置:首页 > 其它

设计模式之模板方法模式

2016-02-02 00:46 295 查看
模板方法模式定义了一个算法的步骤,并允许次类别为一个或多个步骤提供其实践方式。让次类别在不改变算法架构的情况下,重新定义算法中的某些步骤。

我觉得一个例子说的挺好,大意是说父亲有很多理想,就行医救人吧,但是父亲医术不行,只能靠儿子,儿子长大后遵从父亲大志,春风拂面,妙手回春,实现了父亲的理想,儿子做的事情早在出生前就定下来了,是父亲之前久定好的模板。

核心结构

1、抽象模板

2、具体模板

结构图






代码示例:

abstract class Game {
	 
    private int playersCount;
    
    abstract void initializeGame();
    abstract boolean endOfGame();
    abstract void printWinner();

    final void playOneGame(int playersCount) {
        this.playersCount = playersCount;
        initializeGame();
        int j = 0;
        while (!endOfGame()){
            j = (j + 1) % playersCount;
        }
        printWinner();
    }
}

class Chess extends Game {

    void initializeGame() {
        // ...
    }

    boolean endOfGame() {
        // ...
    }

    void printWinner() {
        // ...
    }
}
使用场景:

Andoid VIew 显示步骤:onDraw()、dispatchDraw()、onDrawScrollBars()

拓展连接:

http://www.cnblogs.com/qianxudetianxia/archive/2011/08/09/2131602.html

http://www.cnblogs.com/lzhp/p/3404514.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: