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();
    }

  • 相关阅读:
    第07组 Beta冲刺 总结
    第07组 Beta冲刺 (5/5)
    第07组 Beta冲刺 (4/5)
    第07组 Beta冲刺 (3/5)
    第07组 Beta冲刺 (2/5)
    第07组 Beta冲刺 (1/5)
    软工实践个人总结
    第03组 Beta冲刺(5/5)
    第03组 Beta冲刺(4/5)
    第03组 Beta冲刺(3/5)
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15234969.html
Copyright © 2011-2022 走看看