• 编程模式之模板方法模式(Template Method)


    模板方法模式由两个角色组成:父类角色,子类角色

    父类角色:提供模板。

    子类角色:为父类模板提供实现。

     

    类图:

    JAVA代码:

    AbstractClass.java

    package com.templatemethod;
    
    public abstract class AbstractClass
    {
        /**
         * 定义了算法的骨架,即步骤
         */
        public void template()
        {
            this.method1();
            this.method2();
            this.method3();
        }
        
        /**
         * 子类可以重写这些方法
         */
        public abstract void method1();
        public abstract void method2();
        public abstract void method3();
    }

    ConcreteClass.java

    package com.templatemethod;
    
    public class ConcreteClass extends AbstractClass
    {
    
        @Override
        public void method1()
        {
            System.out.println("Step 1");
        }
    
        @Override
        public void method2()
        {
            System.out.println("Step 2");
        }
    
        @Override
        public void method3()
        {
            System.out.println("Step 3");
        }
    
    }

    Test.java

    package com.templatemethod;
    
    
    public class Test
    {
        public static void main(String[] args)
        {
            AbstractClass ac = new ConcreteClass();
            ac.template();
        }
        
    }

    总结:模板方法模式,定义一个操作中的算法骨架,而将一些步骤延迟到子类中去实现,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而每个步骤的实现可以在子类中完成。

  • 相关阅读:
    js 模块循环加载
    英文
    浏览器
    ecma
    Speaking JavaScript
    es6 exploringjs 2
    es6 兼容性
    es6 中文
    Exploring ES6
    探索ES6(ES2015)
  • 原文地址:https://www.cnblogs.com/justmehyp/p/6230668.html
Copyright © 2020-2023  润新知