模板方法设计模式

来源:互联网 发布:php 通用表单 编辑:程序博客网 时间:2024/06/05 00:42
package Template_Method_Pattern;/** * 模板设计模式:定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个 * 算法的结构即可重定义该算法的某些特定步骤。 * AbstractClass包含了基本方法和模板方法。其中基本方法是抽象方法由子类来实现;模板方法一般 * 是一个或多个具体的方法也就是一个框架,实现了对基本方法的调度,完成固定的逻辑。 * ConcreteClass包含了对AbstractClass具体方法的实现。 * @author dd * */public class demo1 {    public static void main(String[] args) {        HummerModel h1 = new HummerH1Model();        h1.run();    }}abstract class HummerModel{    public abstract void start();    public abstract void stop();    public abstract void aram();    public abstract void engineBoom();    public void run(){        this.start();        this.engineBoom();        this.aram();        this.stop();    }}class HummerH1Model extends HummerModel{    @Override    public void start() {        // TODO Auto-generated method stub        System.out.println("悍马H1启动");    }    @Override    public void stop() {        // TODO Auto-generated method stub        System.out.println("悍马H1停下来");    }    @Override    public void aram() {        // TODO Auto-generated method stub        System.out.println("悍马H1鸣笛");    }    @Override    public void engineBoom() {        // TODO Auto-generated method stub        System.out.println("悍马H1引擎响");    }}class HummerH2Model extends HummerModel{    @Override    public void start() {        // TODO Auto-generated method stub        System.out.println("悍马H2启动");    }    @Override    public void stop() {        // TODO Auto-generated method stub        System.out.println("悍马H2停下来");    }    @Override    public void aram() {        // TODO Auto-generated method stub        System.out.println("悍马H2鸣笛");    }    @Override    public void engineBoom() {        // TODO Auto-generated method stub        System.out.println("悍马H2引擎响");    }}
0 0
原创粉丝点击