通过上面的例子,我们可以看到,使用模板方式时,有两个角色:
(1)抽象模板角色:定义了一个或多个抽象操作,以便让子类实现,这些抽象操作称为基本操作。
(2)具体模板角色:实现父类所定义的一个或多个抽象方法。
模板模式主要实现了代码复用,符合开放-封闭原则,因为引入了一个抽象类,所以如果具体实现过多的话,类之间的关系是复杂点。