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();
        }
    }
  • 相关阅读:
    响应式布局,流式布局与固定布局
    垃圾回收机制
    形象讲解时间复杂度
    数据结构和算法简介
    数据结构之栈和队列
    十、str的索引、切片和str常用的操作方法(重点)
    九、基础数类型总览和str、int、bool之间的相互转化
    八、编码的初识和进阶
    七、格式化输出和运算符
    六、while循环
  • 原文地址:https://www.cnblogs.com/hkdpp/p/9072521.html
Copyright © 2011-2022 走看看