zoukankan      html  css  js  c++  java
  • 编程模式之模板方法模式(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();
        }
        
    }

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

  • 相关阅读:
    asp.net 验证输入有效性
    优化SQL SERVER访问性能
    with nocheck ; nocheck
    VB SStab设置当前页
    相互关联的子查询
    mybatis 批量查询参数语句
    转载 mysql函数大全
    Tchar.h 中的一般文本映射
    字节序的概念、判断、及转换
    Windows风格与C/C++风格:UNICODE VS _UNICODE 与 TEXT() VS _T()
  • 原文地址:https://www.cnblogs.com/justmehyp/p/6230668.html
Copyright © 2011-2022 走看看