模板方法设计模式在父类中定义算法的整体结构,子类可以通过实现或者重写父类的方法来控制实际的行为,这样既保证了算法有足够的可扩展性,又能够严格控制算法的整体结构。
如下:
//父类
public abstract class AbstractBuild {
public void build(){
initialize();
compile();
test();
packageMaven();
integrationTest();
deploy();
}
protected abstract void initialize();
protected abstract voidcompile();
protected abstract voidtest();
protected abstract void packageMaven();
protected abstract void integrationTest();
protected abstract void deploy();
}
子类通过实现父类,对父类进行扩展,父类定义的build方法对外暴露,从而实现整体结构遵从父类模板的定义。
摘自maven实战。