设计模式之模板方法模式
1、模板方法模式
以悍马模型为例
1、创建一个抽象类,里面有汽车启动,鸣笛、停止等操作
2、创建一个抽象类继承上面的抽象类,实现子类共有的代码,让子类具体实现各自的业务代码。
3、编写子类的实现。
4、编码业务场景类进行测试。
package gov.mof.fasp2.gcfr.adjustoffset.adjust; /** * 悍马模型 * @author haokui * */ abstract class AbstractHummermodel { abstract void start();//启动 abstract void stop();//停止 abstract void alarm();//鸣笛 abstract void run();//运行 } /** * 使用一个中间抽象类,来实现子类共有的代码,子类去实现各自不同的抽象方法(模板方法的关键就在于此类) * @author haokui * */ abstract class Hummermodel extends AbstractHummermodel { abstract void start();//启动 abstract void stop();//停止 abstract void alarm();//鸣笛 void run() { this.start(); this.alarm(); this.stop(); } } /** * 悍马1模型实现 * @author haokui * */ class Hummer1 extends Hummermodel { @Override void start() { System.out.println("悍马1启动"); } @Override void stop() { System.out.println("悍马1停止"); } @Override void alarm() { System.out.println("悍马1鸣笛"); } } /** * 悍马1模型实现 * @author haokui * */ class Hummer2 extends Hummermodel { @Override void start() { System.out.println("悍马2启动"); } @Override void stop() { System.out.println("悍马2停止"); } @Override void alarm() { System.out.println("悍马2鸣笛"); } } /** * 业务场景类 * @author haokui * */ public class Main { public static void main(String[] args) { Hummermodel h1 = new Hummer1(); h1.run(); System.out.println("=======分割线======="); Hummermodel h2 = new Hummer2(); h2.run(); } }