zoukankan      html  css  js  c++  java
  • 设计模式之模板方法模式

    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();
        }
    }
  • 相关阅读:
    雅礼集训 Day6 T2 Equation 解题报告
    雅礼集训 Day6 T1 Merchant 解题报告
    雅礼集训 Day5 T3 题 解题报告
    雅礼集训 Day3 T2 u 解题报告
    雅礼集训 Day3 T2 v 解题报告
    set-begin
    set-constructors
    set-constructors
    list-unique
    list-unique
  • 原文地址:https://www.cnblogs.com/hkdpp/p/9072521.html
Copyright © 2011-2022 走看看