举例讲解Java设计模式编程中模板方法模式的运用实例
时间:2020-10-19 10:22:00|栏目:JAVA代码|点击: 次
模板方法模式定义为:
在一个方法中定义了一个算法的骨架或者步骤,而将一些步骤延迟到子类中去实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某一些步骤。
模板方法在基类中定义了一个操作的流程顺序,能够保证该步骤按序进行,有一些步骤的具体实现在基类中已经声明,而将一些变化的步骤的具体实现交给了子类去实现,从而就达到了延迟一些步骤到子类中,模板方法一个最大的好处就是能够设定一个业务流程能够按照一定严格的顺序执行,控制了整个算法的执行步骤。
这个方法将算法定义成一组步骤,其中凡是想让子类进行自定义实现的步骤,均定义为抽象方法。抽象基类的特点是,一般将模板方法设置为final,这样防止子类覆盖该算法的步骤,将一些相同的操作或步骤直接在基类中实现,将一些变化的步骤设置为抽象由子类去完成。
Java实现示例
类图:

/**
* 业务流程模板,提供基本框架
*/
public abstract class BaseTemplate {
public abstract void part1();
public abstract void part2();
public abstract void part3();
//这里为了严格实验结果,使用final不可被重写
public final void useTemplateMethod() {
part1();
part2();
part3();
}
}
/**
* 模板实现方式1
*/
public class TemplateMethod extends BaseTemplate {
@Override
public void part1() {
System.out.println("模板方法1");
}
@Override
public void part2() {
System.out.println("模板方法2");
}
@Override
public void part3() {
System.out.println("模板方法3");
}
}
/**
* 模板实现方式2
* @author stone
*
*/
public class TemplateMethod2 extends BaseTemplate {
@Override
public void part1() {
System.out.println("模板方法11");
}
@Override
public void part2() {
System.out.println("模板方法22");
}
@Override
public void part3() {
System.out.println("模板方法33");
}
}
public class Test {
public static void main(String[] args) {
BaseTemplate tm = new TemplateMethod();
tm.useTemplateMethod();
System.out.println("");
BaseTemplate tm2 = new TemplateMethod2();
tm2.useTemplateMethod();
}
}
打印:
模板方法1 模板方法2 模板方法3 模板方法11 模板方法22 模板方法33
上一篇:Spinrg WebFlux中Cookie的读写的示例
栏 目:JAVA代码
本文标题:举例讲解Java设计模式编程中模板方法模式的运用实例
本文地址:http://www.codeinn.net/misctech/13540.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




