设计模式-模板方法

流程相同,执行过程中有差别

可用于定义算法骨架,将一些实现放到子类中实现,达到不用改变算法结构,重新实现算法的目的

代码实现

package template;

public abstract class Model {
/**
* 类似的行为、逻辑
*/
protected abstract void start();

protected abstract void stop();

/**

  • 固定的流程 模板化
    */
    final public void excet(){
    this.start();
    this.stop();
    }

}

package template;

public class Ocar extends Model {
@Override
protected void start() {

}

@Override
protected void stop() {

}

}

package template;

public class Wcar extends Model {
@Override
protected void start() {

}

@Override
protected void stop() {

}

}

package template;

public class Client {
public static void main(String[] args) {
Model wcar=new Wcar();
wcar.excet();

    Model ocar=new Ocar();
    ocar.excet();
}

}