定义
模板方法(Template Method)模式的定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。
所谓的模板方法模式实际上就是钩子函数。
实现
使用代码举例:
- 首先抽象一个模板对象
Methods用于管理方法:
abstract class Methods {
void template() {
method1();
method2();
}
abstract void method1();
abstract void method2();
}
2.写一个动作对象Actives用于实现方法:
class Actives extends Methods{
@Override
void method1() {
System.out.println("method1");
}
@Override
void method2() {
System.out.println("method2");
}
}
3.主方法调用动作对象方法:
public class Main {
public static void main(String[] args) {
Methods m = new Actives();
m.template();
}
}
运行结果:
解释一下这段代码,其中模板对象Methods中有一个方法template(),在其方法体中调用了method1()和method2(),这就类似一个模板。然后动作对象Actives继承Methods,并重写method1()和method2(),这样在主程序中调用模板方法时会根据模板中设定好的顺序或逻辑进行重写好的方法内容。
应用
凡是我们重写的方法,系统帮我们自动调用的,都是模板方法。
- WindowListener
- windowClosing()
- window***()
- ASM
- ClassVisitor()
- ···
模板方法模式是一种设计模式,它定义了操作的框架,允许子类在不改变算法结构的情况下重定义某些步骤。在Java中,模板方法通过抽象类定义模板方法和钩子函数,子类实现具体步骤。例如,Methods类作为模板,Actives类继承并实现其方法。模板方法模式常用于系统框架中,如WindowListener的事件处理方法、ASM的ClassVisitor等,实现代码复用和定制化行为。
1818

被折叠的 条评论
为什么被折叠?



