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

    模板方法模式定义了一个算法框架,并通过继承的方式将算法的实现延迟到子类中,使得子类可以在不改变算法框架及流程的前提下重新定义改算法在某些环节的实现。

    image

    (1)定义模板类

    public abstract class AbstractTemplate{
        private  final static Log logger = LogFactory.getLog(this.getClass());
        public void templateMethod(){
            checkNumber();
            queueUp();
            handleBusiness();
            serviceEvaluation();
        }
        public void checkNumber(){// 抽号
            logger.info("checkNumber.....");
        }
        public void queueUp(){// 排队
            logger.info("queue up.....");
        }
        public abstract void handleBusiness(); // 业务办理
        public void serviceEvaluation(){// 评价
            logger.info("service evaluation .....");
        }
    }

    (2)定义业务1

    public class SaveMoney extends AbstractTemplate{
        private  final static Log logger = LogFactory.getLog(this.getClass());
    
        @Override
        public void handleBusiness() {
            logger.info("save money from bank");
        }
    }

    (3)定义业务2

    public class TakeMoney extends AbstractTemplate{
        private  final static Log logger = LogFactory.getLog(this.getClass());
    
        @Override
        public void handleBusiness() {
            logger.info("take money from bank");
        }
    }

    (4)使用模板模式

    public static void main(String[] args){
        // 办理取钱流程
        AbstractTemplate template1 = new TakeMoney();
        template1.templateMethod();
    
        // 办理存钱流程
        AbstractTemplate template2 = new SaveMoney();
        template2.templateMethod();
    }

  • 相关阅读:
    【做题记录】区间排序—线段树
    【做题记录】CF1428E Carrots for Rabbits—堆的妙用
    线段树合并、分裂
    一、drf入门规范
    七、Django实战--图书管理系统搭建
    六、ORM模型层补充
    五、Django之模型层
    四、Django之模板层
    三、Django之视图层
    二、Django之路由层
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15234969.html
Copyright © 2011-2022 走看看