0%

设计模式-模板方法

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

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

代码实现

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();
    }

}