结构 意图 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Te m p l a t e M e t h o d 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 适用性 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现. 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复.这是O p d y k e 和J o h n s o n 所描述过的“重分解以一般化”的一个很好的例子[ O J 9 3 ].首先识别现有代码中的不同之处,并且将不同之处分离…