模板方法设计模式在父类中定义算法的整体结构,子类可以通过实现或者重写父类的方法来控制实际的行为,这样既保证了算法有足够的可扩展性,又能够严格控制算法的整体结构。
如下:
//父类
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实战。