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

    定义:

      定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

    UML类图:

    具体代码:

    public class Client {
        public static void main(String[] args) {
            ConcreteClass cc = new ConcreteClass();
            cc.init();
        }
    }
    
    public abstract class AbstractClass {
        public abstract void operation1();
        public abstract void operation2();
        public void templateMeathod() {
            System.out.println("公共模板");
        }
    
        public void init() {
            operation1();
            templateMeathod();
            operation2();
        }
    }
    
    public class ConcreteClass extends AbstractClass {
    
        @Override
        public void operation1() {
            System.out.println("个性操作1");
        }
    
        @Override
        public void operation2() {
            System.out.println("个性操作2");
        }
    }
    
    个性操作1
    公共模板
    个性操作2

    模块说明:

    AbstractClass:抽象类,定义整个流程算法的骨架。
    ConcreteClass:具体类,实现流程算法里的具体步骤。

    适用场景:
    定制流程的比如,框架的初始化,对账等等。其中我们的项目对账里就是这样的,
    对账先下载文件,校验文件,解析文件,录入拆分,比对数据等等,类似的就很适合应用模板方法模式。

    优缺点:

    优点:
    实现了代码的复用。
    缺点:
    抽象类定义的模板与子类耦合度很高,不容易实现扩展。如果流程有变化,可能影响整个所有子类的调整。

    总结:
    代码复用,且固定算法流程。

  • 相关阅读:
    c语言中malloc函数的使用
    C语言的头文件和宏定义详解
    CUDA程序闪退时的处理方法【转】
    Shell面试,笔试整理
    阿里云系统安装部署Freeswitch
    汇编——根据偏移地址索取到的字数据
    一个典型的空语句(c,c++)
    关于64位系统的debug使用方法
    隐藏表单域、URL重写、cookie、session
    MVC的路由
  • 原文地址:https://www.cnblogs.com/daily-note/p/7521475.html
Copyright © 2011-2022 走看看