java模版方法应用实例_举例讲解Java设计模式编程中模板方法模式的运用实例

模板方法模式定义了一个操作的算法骨架,并将部分步骤延迟到子类中。基类中定义了操作流程顺序,子类可以重定义某些步骤。Java实现示例展示了如何创建基类`BaseTemplate`和两个子类`TemplateMethod`、`TemplateMethod2`,通过`useTemplateMethod`方法执行不同的流程。
摘要由CSDN通过智能技术生成

模板方法模式定义为:

在一个方法中定义了一个算法的骨架或者步骤,而将一些步骤延迟到子类中去实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某一些步骤。

模板方法在基类中定义了一个操作的流程顺序,能够保证该步骤按序进行,有一些步骤的具体实现在基类中已经声明,而将一些变化的步骤的具体实现交给了子类去实现,从而就达到了延迟一些步骤到子类中,模板方法一个最大的好处就是能够设定一个业务流程能够按照一定严格的顺序执行,控制了整个算法的执行步骤。

这个方法将算法定义成一组步骤,其中凡是想让子类进行自定义实现的步骤,均定义为抽象方法。抽象基类的特点是,一般将模板方法设置为final,这样防止子类覆盖该算法的步骤,将一些相同的操作或步骤直接在基类中实现,将一些变化的步骤设置为抽象由子类去完成。

Java实现示例类图:

a71eec7bb003a677ddf75ae94a3513d4.png

/**

* 业务流程模板,提供基本框架

*/

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值