模版方法模式
1.定义
模板方法模式 定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式.让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤.
2.实现
模板方法(Template Method)模式
- 抽象模版(Abstract Class)角色
- 具体模版(Concrete Class)角色
抽象模版: 定义了一个或多个抽象操作,以便让子类实现
/**
* 抽象模版(Abstract Class)角色
*/
public abstract class AbstractClass {
public abstract void init();
public void showResult(){
init();
System.out.println("显示结果!");
}
}
具体模版: 实现父类所定义的一个或多个抽象方法
/**
* 具体模版(Concrete Class)角色
*/
public class ConcreteClass extends AbstractClass {
@Override
public void init() {
System.out.println("初始化...");
}
}
测试
/**
* 测试使用
*/
public class TemplateMethodClient {
public static void main(String[] args) {
AbstractClass clazz = new ConcreteClass();
clazz.showResult();
// stdout
// 初始化...
// 显示结果!
}
}