设计模式——行为型之模版模式
将一个方法的逻辑拆分为多个步骤,由不同子类实现自己各个步骤的逻辑,这样的类的行为叫模版模式
模版模式将相同实现抽离,将不同实现延迟到子类,使通用逻辑和特殊逻辑解耦
模版模式由2部分组成:
- 抽象模版类,将统一接口拆分成若干步骤
- 实现类,各个子类根据自己的需要实现各个步骤
抽象模版类:
public abstract class AbstractTemplate {
//final修饰避免被重写
public final void templateMethod(){
method1();
method2();
method3();
}
//若干步骤由子类实现
public abstract void method1();
public abstract void method2();
public abstract void method3();
}
实现类(B、C省略):
public class ImplA extends AbstractTemplate{
@Override
public void method1() {
System.out.println("A do method1");
}
@Override
public void method2() {
System.out.println("A do method2");
}
@Override
public void method3() {
System.out.println("A do method3");
}
}
使用:
public static void main(String[] args) {
final AbstractTemplate implA = new ImplA();
implA.templateMethod();
final AbstractTemplate implB = new ImplB();
implB.templateMethod();
final AbstractTemplate implC = new ImplC();
implC.templateMethod();
}
A do method1
A do method2
A do method3
B do method1
B do method2
B do method3
C do method1
C do method2
C do method3