bingo手机官网:Template method pattern 模板方法模式

来源:百度文库 编辑:中财网 时间:2024/04/29 05:43:33
Template method pattern 模板方法模式2010-05-14 16:57

Template method pattern 模板方法模式。

它是多态技术的一种应用。代码如下,

abstract class MyTemplate{
    abstract void step1();
    abstract void step2();
    abstract void step3();

    /**
     * 这就是模板。被子类共用。
     */
    final void TemplateMethod(){
step1();
step2();
step3();
    }
}

子类(略)。

所有子类会共用模板方法。不同子类对抽象方法的实现不同,但大的蓝图并未改
变。战役的方式不同,战略并未受到影响。或者说,大的战略制定下来,小的战
役你们自己看着办就行。

架子是怎么搭起来的?架子就是这么搭起来的。架构师是做什么的?架构师就是
搭架子的人。

常说的I call you 而不是 You call me 就表现于此。子类的编写者不用考虑去
调用某个算法方法,只需要关注实现自己的方法,自然就会被更高一级的方法调
用。

模板方法也可以看是个大的算法架子,算法的具体步骤被子类来实现。
Stragegy模式也是跟算法有关的模式,这里比较它们一下。

Stragegy模式是做一件事情有多种算法实现,这种被实现推迟到子类里实现。
Template模式是算法已经确定,而实现步骤的细节被推迟到子类里实现。

Strategy 代码如下,

interface Strategy {
    int execute(int a, int b);
}

class Context {
    private Strategy strategy;
    // Constructor
    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public int executeStrategy(int a, int b) {
        return strategy.execute(a, b);
    }
}