一、简介
模板模式(Template),又叫模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
简单来说,模板方法就是在抽象类或接口中定义方法的模板,具体的实现交由具体的子类。
二、结构
三、代码实现
1.AbstractClass
public abstract class AbstractClass {
public abstract void operation1();
public abstract void operation2();
public void template() {
operation1();
operation2();
}
}
2. ConcreteClassA、ConcreteClassB
public class ConcreteClassA extends AbstractClass{
@Override
public void operation1() {
System.out.println("ConcreteClassA operation1 实现");
}
@Override
public void operation2() {
System.out.println("ConcreteClassA operation2 实现");
}
}
public class ConcreteClassB extends AbstractClass{
@Override
public void operation1() {
System.out.println("ConcreteClassB operation1 实现");
}
@Override
public void operation2() {
System.out.println("ConcreteClassB operation2 实现");
}
}
3. 客户端
public class Client {
public static void main(String[] args) {
AbstractClass template;
template = new ConcreteClassA();
template.template();
template = new ConcreteClassB();
template.template();
}
}
四、总结
- 模板方法通过把不变行为搬移到超类,去除子类中的重复代码。
- 模板方法提供一个很好的代码复用平台。