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 里就是用的模板方法

  • 相关阅读:
    IE6下实现Width:auto
    Dynamic Linq 的Like扩展
    用一句JQuery代码实现表格的简单筛选
    jquery:利用jsonp跨域访问转载
    LINQ动态组合查询
    Windows服务中Timer组件
    正则表达式笔记转载
    继LINQ动态组合查询PredicateExtensions讲解
    错误笔记:在OleDb执行下Access ,程序不报错,但是Update也更新不成功的
    jQuery 1.4 版本的十五个新特性转载
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11101300.html
Copyright © 2011-2022 走看看