• 设计模式——模板方法模式(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();
        }
    }
  • 相关阅读:
    蓝鲸6.02双机部署文档
    蓝鲸考试
    蓝鲸6.03部署[部署方案优化]
    kubeadm部署高可用版Kubernetes1.21[基于centos7.6]
    Linux命令行优化,历史记录优化
    vim插件
    蓝鲸6.02部署与蓝鲸6.02自动化部署
    git生成公钥私钥和ppk
    Oracle的数据库日志(redolog)的使用说明
    oracle 11g的审计功能
  • 原文地址:https://www.cnblogs.com/tanlon/p/3413518.html
Copyright © 2020-2023  润新知