• 设计模式之模板方法模式


    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();
        }
    }
  • 相关阅读:
    Appium+python自动化3-启动淘宝app
    Appium+python自动化2-环境搭建(下)
    Appium+python自动化1-环境搭建(上)
    postman提取返回值
    Android studio(AS)的下载和安装
    monkey的安装和配置
    配置自己的CentOS7服务器
    mac-homebrew安装太慢
    vue.js中祖孙通信之provide与inject
    nginx location 以及 proxy_pass 的几种情况 以/结尾的问题
  • 原文地址:https://www.cnblogs.com/hkdpp/p/9072521.html
Copyright © 2020-2023  润新知