类图
/**
* 业务流程模板,提供基本框架
* @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
以上就是java实现模板方法(templatemethod)模式的方法详解的详细内容。