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

    模板方法模式:

    定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的重复代码全部在父类里面,不同业务的,抽取给子类进行实现。抽取过程---抽象方法。

    父类里面是一整套业务流程模板,针对差异化的地方,可以用抽象方法封装,让不同的子类去实现

    例子:

    整套业务流程:基金定投业务

    1,日志开启

    2,发送到指定的基金公司接口,不同的子类实现(量子基金,对冲基金,浦发基金)

    3,页面信息显示

    4,日志结束

    定义模板

    public abstract class Funds {
    
        // 定投业务
        void dingTou() {
            // 日志开启
            logBegin();
            // 2 发送到指定的基金公司接口,不同的子类实现(量子基金,对冲基金,浦发基金
            invokeFundsInterface();
            // 3 页面信息显示
            show();
            // 4 日志结束
            logEnd();
        }
    
        private void logEnd() {
            System.out.println("日志结束");
        }
    
        private void show() {
            System.out.println("show successfully");
        }
    
        public abstract void invokeFundsInterface(); //需要不同子类去实现的定义成抽象方法
    
        private void logBegin() {
            System.out.println("日志开启");
        }
    
    }

    子类实现:

    public class QuantumFunds extends Funds {
    
        @Override
        public void invokeFundsInterface() {
            System.out.println("量子基金定投业务接口。。。。");
        }
    
    }
    
    class HedgeFunds extends Funds {
    
        @Override
        public void invokeFundsInterface() {
            System.out.println("对冲基金定投业务接口。。。。");
        }
    
    }
    
    class PufaFunds extends Funds {
    
        @Override
        public void invokeFundsInterface() {
            System.out.println("浦发基金定投业务接口。。。。");
        }
    
    }

    Client:

    public class Client {
        public static void main(String[] args) {
            QuantumFunds funds = new QuantumFunds();
            funds.dingTou();
        }
    
    }

    在分析JDK 源码的时候,看到抽象类,可以看一下这个类里面有没有整体的业务逻辑,很可能是用了模板方法

    HttpServlet 里就是用的模板方法

  • 相关阅读:
    html5+css3兼容问题小结
    webkit滚动条样式设置
    rem彻底研究
    四月、五月开发总结
    php oci8 小试
    oracle创建dblink
    php 页面参数过多时自动拼接get参数的函数
    Oracle Database 11g Express Edition 使用小结(windows)
    php sortable 动态排序
    php动态生成一个xml文件供swf调用
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11101300.html
Copyright © 2011-2022 走看看