适用性:
模板方法应用于下列情况:
1,一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。
2,各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别现有代码中的不同之处,并且将不同之处分离为新的操作。最后,用一个调用这些新的操作的模板方法来替换这些不同的代码。
3,控制子类扩展。模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展。
效果:
模板方法是一种代码复用的基本技术。他们在类库中尤为重要,他们提取了类库中的公共行为。
模板方法导致了一种反向的控制结构,这种控制结构被称为“好莱坞法则”,即“别找我们,我们找你”,这指的是一个父类调用子类的操作,而不是相反。其实这就是依赖倒置原则:子类和父类都依赖于抽象。