模板方法(Template Method)
解决算法框架问题
描述
定义了一个算法的骨架,并将某些步骤延迟到子类中进行实现,从而使得算法的具体实现能够在子类中自由变化。这种方式可以大大减少重复代码,同时也能够提高代码的可读性和可维护性。
适用环境
当多个子类有相同的行为,但实现细节不同时使用;当需要控制子类的扩展时使用。
优点:
可以通过定义一个算法骨架来保持代码的一致性;可以在不修改算法结构的情况下扩展算法。
缺点:
由于模板方法模式采用的是基于继承的实现方式,因此可能导致代码的复杂度增加。
违反原则:
开放-封闭原则:如果需要更改算法结构,则需要对所有的子类进行修改,可能违反该原则。
代码实现
卖书的过程中需要记录每本书的销售信息,包括销售日期、销售数量和销售价格等。现在使用传统的方式来记录销售信息: