美文网首页
设计模式之模板方法模式

设计模式之模板方法模式

作者: 雨林木风博客 | 来源:发表于2018-03-14 15:13 被阅读0次

    模板方法,见名知意,我不再啰嗦,直接上代码,代码很好理解,我觉得看代码比磨磨唧唧码那么多字强多了!

    模板类(抽象类)

    package com.zyh.designpatterns.com.zyh.templatemethod;
    
    public abstract class AbstractTemplate {
    
        /*
         * 模板方法,起到模板作用
         */
        public final void templateMethod()
        {
             abstractMethod();
             hookMethod();
             concreteMethod();
        }
    
        /*
         * 基本方法的声明(必须实现)
         */
        public abstract void abstractMethod();
    
        /*
         * 基本方法的空实现(可用于hook)
         */
        public void hookMethod()
        {
    
        }
    
        /*
         * 子类不可变方法(实现一些固定的逻辑)
         */
        private void concreteMethod()
        {
            System.out.println("抽象类中实现一些固定的逻辑");
        }
    }
    

    子类去继承上边的抽象类

    package com.zyh.designpatterns.com.zyh.templatemethod;
    
    public class ConcreteTemplate extends AbstractTemplate{
    
        /*
         * 必须实现的方法
         */
        @Override
        public void abstractMethod() {
             /* 实现一些具体的逻辑  */
            System.out.println("实现一些具体的逻辑");
        }
    
        @Override
        public void hookMethod() {
            /* 实现一些hook逻辑或者不实现 */
            System.out.println("实现一些hook逻辑或者不实现");
        }
    
        public static void main(String[] args)
        {
           ConcreteTemplate ct = new ConcreteTemplate();
           ct.templateMethod();
        }
    }
    

    运行结果

    实现一些具体的逻辑
    实现一些hook逻辑或者不实现
    抽象类中实现一些固定的逻辑
    

    相关文章

      网友评论

          本文标题:设计模式之模板方法模式

          本文链接:https://www.haomeiwen.com/subject/pypfqftx.html