设计模式之模板方法模式:如何实现同一模板框架下的算法扩展?
今天我们继续来学习一个新的行为型设计模式:模板方法模式。模板方法模式的原理和代码实现都比较简单,在软件开发中也被广泛应用,但是因为使用继承机制,副作用往往盖过了主要作用,所以在使用时尤其要小心谨慎。不过,通过今天的学习,相信你能够把握好这个度。
话不多说,让我们开始今天的学习吧。
模式原理分析
模板方法模式原始定义是:在操作中定义算法的框架,将一些步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。
从这个定义中,我们能看出模板方法模式的定位很清楚,就是为了解决算法框架这类特定的问题,同时明确表示需要使用继承的结构。
我们来看一下模板方法模式的 UML 图:
在这个 UML 图中,模板方法模式包含的关键角色有两个。
抽象父类:定义一个算法所包含的所有步骤,并提供一些通用的方法逻辑。 具体子类:继承自抽象父类,根据需要重写父类
共有 0 条评论