模板方法模式的原理和代码实现都比较简单,在软件开发中也被广泛应用,但是因为使用继承机制,副作用往往盖过了主要作用,所以在使用时尤其要小心谨慎。
一、模式原理分析
模板方法模式原始定义是:在操作中定义算法的框架,将一些步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。
从这个定义中,我们能看出模板方法模式的定位很清楚,就是为了解决算法框架这类特定的问题,同时明确表示需要使用继承的结构。
模板方法模式包含关键的两个角色:
-
抽象父类:定义一个算法所包含的所有步骤,并提供一些通用的方法逻辑。
-
具体子类:继承自抽象父类,根据需要重写父类提供的算法步骤中的某些步骤。
模板方法模式的代码实现:
public abstract class AbstractClassTemplate {
void step1(String key){
//dosomthing
System.out.println("=== 在模板类里 执行步骤 1");
if (step2(key)) {
step3();
} else {
step4();
}
step5();
}
boolean step2(String key){
System.out.println("=== 在模板类里 执行步骤 2");
if ("x".equals(key)) {
return true;
}
return false;
}
abstract void step3();
abstract void step4();
void step5() {
System.out.println("=== 在模板类里 执行步骤 5");
}
void run(String key){
step1(key);
}
}
public class ConcreteClassA extends AbstractClassTemplate {
@Override
void step3() {
System.out.println("===在子类 A 中 执行:步骤3");
}
@Override
void step4<
标签:框架,步骤,void,算法,key,子类,模板
From: https://blog.csdn.net/u010223407/article/details/141729118