码迷,mamicode.com
首页 > 其他好文 > 详细

模板方法模式

时间:2020-06-28 14:53:47      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:targe   方法   override   eth   i++   src   sig   int   template   

模板方法模式在抽象类中定义一个操作的算法的骨架,一些步骤延迟到子类中。

使用场景:

  1、多个子类共有方法,且逻辑相同

  2、中要的、复杂的方法,可以考虑作为模板方法

抽象类

package com.alphajuns.templateMethod;

public abstract class Template {

    public abstract void print();

    public void update() {
        System.out.println("开始打印");
        for (int i = 0; i < 5; i++) {
            // 调用打印方法,实际实现位于实现类中
            print();
        }
    }

}

 子类

package com.alphajuns.templateMethod;

public class ConcreteTemplate extends Template {

    @Override
    public void print() {
        System.out.println("子类实现方法");
    }

}

 测试类

package com.alphajuns.templateMethod;

public class Test {

    public static void main(String[] args) {
        Template template = new ConcreteTemplate();
        template.update();
    }

}

 输出

技术图片

 

 以上案例,在抽象类的update()方法中调用了抽象方法print(),而print()方法的实现位于子类中,如果存在其它子类,具体实现便为该子类的print()

可参考菜鸟教程的模板方法模式

应用案例

利用模板方法模式导出excel文件

利用模板方法模式导出cvs文件

模板方法模式

标签:targe   方法   override   eth   i++   src   sig   int   template   

原文地址:https://www.cnblogs.com/alphajuns/p/13202714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!