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

    顶层设计: 抽象类 【 汽车模型】

    package com.designer.designerdemo.template;
    
    /**
     * 基本方法 : start(), stop(), alarm(), engineBoom()
     * 模板方法 : run()
     */
    public abstract class AbstractCarModel {
    
        /** 启动 */
         protected abstract void start();
    
        /** 停止 */
        protected abstract void stop();
    
        /** 按喇叭 */
        protected abstract void alarm();
    
        /** 引擎发出声音 */
        protected abstract void engineBoom();
    
         /** 是否让喇叭响 */
        protected abstract boolean isAlarm();
    
        /**
         * 模板方法
         * 出发
         * final修饰避免子类修改它的含义
         */
        final public void run() {
            //1.启动
            this.start();
            //2.鸣笛
            if(this.isAlarm())
                this.alarm();
            //3.引擎轰鸣
            this.engineBoom();
            //4.停车
            this.stop();
        }
    
    }

    子类1:【奥迪汽车】

    package com.designer.designerdemo.template;
    
    public class AudiCarModel extends AbstractCarModel {
    
        @Override
        protected void start() {
            System.out.println("汽车2启动===");
        }
    
        @Override
        protected void stop() {
            System.out.println("汽车2停止===");
        }
    
        @Override
        protected void alarm() {
            System.out.println("汽车2鸣笛===");
        }
    
        @Override
        protected void engineBoom() {
            System.out.println("汽车2引擎轰鸣===");
        }
    
        @Override
        protected boolean isAlarm() {
            return true;
        }
    }

    测试

    package com.designer.designerdemo;
    
    import com.designer.designerdemo.template.AbstractCarModel;
    import com.designer.designerdemo.template.BwmCarModel;
    import com.designer.designerdemo.template.AudiCarModel;
    
    public class Test {
    
        public static void main(String[] args) {
            BwmCarModel car = new BwmCarModel();
            car.run();
        }
    }
     
  • 相关阅读:
    python增加 删除列表元素
    Fildder2
    Appscan使用第三方浏览器
    Appscan的下载安装
    http状态码
    python学习资料
    Fiddler抓包工具
    性能测试的一些资料
    Jmeter分布式测试
    内存溢出的原因及解决办法(转)
  • 原文地址:https://www.cnblogs.com/smileblogs/p/15391535.html
Copyright © 2011-2022 走看看