设计模式之模板方法模式

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();
    }
}
原文地址:https://www.cnblogs.com/hkdpp/p/9072521.html