设计模式之模板方法模式

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

模板类(抽象类)

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逻辑或者不实现
抽象类中实现一些固定的逻辑
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容