java template .class_Java 实现模板方法(TemplateMethod)模式

类图

b10274d9e7df4488f06262a6866dc8f2.png

/**

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

* @author stone

*

*/

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

* @author stone

*

*/

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");

}

}

/**

* 模板方法(TemplateMethod)模式:行为型模式,定义了一系列操作的骨架,将模块的实现 延迟到实现类或者子类中实现。

* 跟建造者模式的差别:

* 建造者模式。使用组合方式,由指挥者Director指挥组合的Builder建造。建造流程由Director控制。建造的模块方法由Builder实现

* 模板方法模式。由模板定义操作流程,由子类或实现类 实现详细的模块方法

* 综上。建造者模式灵活于模板方法模式

* @author stone

*

*/

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、付费专栏及课程。

余额充值