定义
定义一个算法中的操作框架,而将一些步骤延迟到子类中。使得子类可以不改变算法结构即可重定义该算法的某些特定步骤。
该设计模式的角色划分较为简单
抽象模版类
具体模版类
抽象模版类又包含了这样几个方法:模版方法,具体方法,抽象方法,勾子方法。
立即学习“Java免费学习笔记(深入)”;
模版方法
决定了算法的实现步骤,该方法中调用了具体方法,待实现的抽象方法,勾子方法等。是算法执行的一个模版。
具体方法
具体方法是算法中较稳稳定的部分,所以抽象类中给出了方法的具体实现。
抽象方法
抽象方法正是定义中所说的延迟到子类实现的方法。
勾子方法
一般模版方法会给出默认实现,子类中看情况对这个方法进行覆盖重写。

/**
* Created by tiantian on 2018/7/28
*/public abstract class AbstractTemplateMethod {
public void templateMethod() {
implementedMethod();
abstractMethod();
hookMethod(); // ... more than method invoke
} public void anotherTemplateMethod() { // do other things
} public abstract void abstractMethod(); public void hookMethod() {} public void implementedMethod() {
System.out.println("I have been implemented in TemplateMethod class.");
} // ... more than method abstract or implemented.}/**
* Created by tiantian on 2018/7/28
*/public class ConcreteTempleteMethod extends AbstractTemplateMethod {
@Override
public void abstractMethod() {
System.out.println("Do something");
} @Override
public void hookMethod() {
System.out.println("Do something in hookMethod");
}
}定义一个算法中的操作框架,而将一些步骤延迟到子类中。使得子类可以不改变算法结构即可重定义该算法的某些特定步骤。
该设计模式的角色划分较为简单
抽象模版类
具体模版类
抽象模版类又包含了这样几个方法:模版方法,具体方法,抽象方法,勾子方法。
立即学习“Java免费学习笔记(深入)”;
模版方法
决定了算法的实现步骤,该方法中调用了具体方法,待实现的抽象方法,勾子方法等。是算法执行的一个模版。
具体方法
具体方法是算法中较稳稳定的部分,所以抽象类中给出了方法的具体实现。
抽象方法
抽象方法正是定义中所说的延迟到子类实现的方法。
勾子方法
一般模版方法会给出默认实现,子类中看情况对这个方法进行覆盖重写。

/**
* Created by tiantian on 2018/7/28
*/public abstract class AbstractTemplateMethod {
public void templateMethod() {
implementedMethod();
abstractMethod();
hookMethod(); // ... more than method invoke
} public void anotherTemplateMethod() { // do other things
} public abstract void abstractMethod(); public void hookMethod() {} public void implementedMethod() {
System.out.println("I have been implemented in TemplateMethod class.");
} // ... more than method abstract or implemented.}/**
* Created by tiantian on 2018/7/28
*/public class ConcreteTempleteMethod extends AbstractTemplateMethod {
@Override
public void abstractMethod() {
System.out.println("Do something");
} @Override
public void hookMethod() {
System.out.println("Do something in hookMethod");
}
}相关文章:
相关视频:
以上就是案例详解java23种设计模式:模版方法模式(附代码)的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号