-
template-method-alternatives: 模板方法模式与其他替代方案在实际应用中的对比
资源介绍
模板方法与世界
有哪些替代?
电厂实例
情况
类的层次结构,其中某些方法被后代覆盖,而一个方法绝对不应被覆盖,否则会破坏层次结构的功能。 这是使用抽象根类实现的,该抽象类具有某种抽象方法和一种最终的具体方法:模板方法。
拟议的替代方案
仅使用将要覆盖的方法将抽象根类重构为接口。 创建一个新的类,即协调器,在其中创建一个包含固定逻辑的方法。 此方法将根接口的实例作为要执行操作的参数。
派生原理:如果某条逻辑从其在类层次结构中的位置是独立的,则它可能存在于层次结构之外。
组成处理器示例
情况
我们希望允许在Processor接口的实例上进行装饰,但我们想通过提供一个在模板方法中实现延迟的抽象类来简化装饰器的实现,而有两种方法可以覆盖装饰器的行为代表团之前和之后。 这两种方法是具体的,但却是空的,以免在不要求混凝土装饰者执行它们的情况下强制实施它们。
拟议的替代方案
我们意识到,我们要添加到装