• 设计模式——模板方法模式(TemplateMethod Pattern)


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

    UML图:

      

    抽象模板:

    package com.cnblogs.clarck;
    
    /**
     * 抽象模板,并实现了一个模板方法。
     * 
     * @author clarck
     * 
     */
    public abstract class AbstractClass {
        public abstract void primitiveOperation1();
    
        public abstract void primitiveOperation2();
    
        /**
         * 模板方法,给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作,将具体的操作推迟到了子类实现。
         */
        public void TemplateMethod() {
            primitiveOperation1();
            primitiveOperation2();
    
            System.out.println("");
        }
    }

    实现父类的一个或多个抽象方法:

    package com.cnblogs.clarck;
    
    /**
     * 实现父类的一个或多个抽象方法
     * 
     * @author clarck
     * 
     */
    public class ConcrateClassA extends AbstractClass {
    
        @Override
        public void primitiveOperation1() {
            System.out.println("具体类A的方法1实现");
        }
    
        @Override
        public void primitiveOperation2() {
            System.out.println("具体类A的方法2实现");
        }
    
    }
    package com.cnblogs.clarck;
    
    public class ConcrateClassB extends AbstractClass {
    
        @Override
        public void primitiveOperation1() {
            System.out.println("具体类B的方法1实现");
        }
    
        @Override
        public void primitiveOperation2() {
            System.out.println("具体类B的方法2实现");
        }
    
    }

    测试类:

    package com.cnblogs.clarck;
    
    /**
     * 测试类
     * 
     * @author clarck
     * 
     */
    public class Client {
        public static void main(String[] args) {
            AbstractClass abstractClass;
            abstractClass = new ConcrateClassA();
            abstractClass.TemplateMethod();
            
            abstractClass = new ConcrateClassB();
            abstractClass.TemplateMethod();
        }
    }
  • 相关阅读:
    Maven项目中Spring整合Mybatis
    java中,方法可以访问他的类对象的任何私有特性
    SpringBoot之整合Mybatis(增,改,删)
    SpringBoot之整合Mybatis
    SpringBoot之简单入门
    puppet-master搭建
    基于weka的文本分类实现
    static关键字用法
    Vmware /CentOS访问Windows中的文件
    异常备忘
  • 原文地址:https://www.cnblogs.com/tanlon/p/3413518.html
Copyright © 2020-2023  润新知