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

    模板方法模式(Template Method)

    定义:模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中某些步骤的具体实现。

    应用举例:

      在系统的导出模块中,两个导出功能的唯一不同点:数据不相同。因此可以使用模板方法模式来设计导出模块。

    设计与实现:

      1、一个抽象父类,导出方法中定义算法骨架。将获取数据的方法,定义为抽象方法。(定义模板)

      2、各个具体导出类,继承该抽象父类,并实现获取数据的抽象方法。(将一些步骤延迟到子类中实现)

    伪代码:

      1、抽象父类:exportBase

      public abstract class exportBase{

        //导出方法模板

        public void export(){

          //下面定义导出的具体步骤,获取到数据后,将数据打包,压缩。

          List<Object> lists = queryDatas();  //获取数据的方法

          //压缩打包

          zipData(lists);

        }

        public abstract List<Object> queryDatas();//将获取数据的方法,定义为抽象类,由各个子类负责实现,获取不同的数据。

      }

      2、具体的导出类A:exportA

      public class exportA extends exportBase{

        public List<Object> queryDatas(){

          //实现具体的获取数据方式

        }

      }

      3、具体的导出类B:exportB  

      public class exportA extends exportBase{

        public List<Object> queryDatas(){

          //实现具体的获取数据方式

        }

      }

      4、调用导出方法

      调用父类定义的导出方法:export()就可以按照我们定义好的模板执行,根据不同子类的queryDatas()方法,获取不同的导出数据。

    优点:

      1、模板的方式,规定了你必须这样做。相比于组合模式,模板方法强调“模板”,模式固定,不能修改。

      2、模板方法中的非抽象方法,只有一份,没有代码冗余。

  • 相关阅读:
    some tips
    ORA00847: MEMORY_TARGET/MEMORY_MAX_TARGET and LOCK_SGA cannot be set together
    Chapter 01Overview of Oracle 9i Database Perfomrmance Tuning
    Chapter 02Diagnostic and Tuning Tools
    变量与常用符号
    Chapter 18Tuning the Operating System
    标准输入输出
    Trace files
    DBADeveloped Tools
    Chapter 03Database Configuration and IO Issues
  • 原文地址:https://www.cnblogs.com/chen--biao/p/9771698.html
Copyright © 2011-2022 走看看