设计模式之责任链与模板方法模式详解
1. 责任链模式概述
在角色扮演游戏(RPG)中,为角色实现不同的保护机制时,可运用责任链模式。每种保护机制只能处理特定类型的攻击,一系列攻击处理程序能确定角色可抵御哪些攻击。在游戏过程中的任何时刻,都可添加或移除任何攻击处理程序,而不会影响角色的其他行为。若不采用责任链模式,攻击处理程序的复杂组合会使角色类变得臃肿,且难以更改处理程序。
2. 模板方法模式概念
模板方法模式是面向对象软件设计中最简单的设计模式之一。其基本思想是在抽象类的一个方法中定义“标准”算法,该方法会调用其他应由子类重写的基本操作。之所以称为“模板”,是因为此方法定义的算法中缺少一些独特操作。
抽象类部分定义一些方法和算法,留下部分操作未定义。当具体子类重写基本操作时,会填补抽象类中模板方法的“空白”。模板方法模式的定义为:在一个操作中定义算法的骨架,将某些步骤延迟到子类中实现。它允许子类在不改变算法结构的情况下重新定义算法的某些步骤。
3. 使用模板方法模式的场景
以下情况可考虑使用模板方法模式:
- 需要一次性实现算法的不变部分,将可变的特定行为留给子类实现。
- 应将子类的公共行为提取到一个公共类中,以避免代码重复。将现有代码的差异分离到新操作中,然后用调用这些新操作的模板方法替换不同的代码。
- 需要对具体子类进行可控扩展。可以定义一个在特定点调用“钩子”操作的模板方法,子类可通过实现钩子来扩展这些点的功能。
4. 模板方法调用的操作类型
模板方法会调用以下五种类型的操作:
- 具体类或客户端类上的具体操作
超级会员免费看
订阅专栏 解锁全文
1294

被折叠的 条评论
为什么被折叠?



