21、设计模式之责任链与模板方法模式详解

设计模式之责任链与模板方法模式详解

1. 责任链模式概述

在角色扮演游戏(RPG)中,为角色实现不同的保护机制时,可运用责任链模式。每种保护机制只能处理特定类型的攻击,一系列攻击处理程序能确定角色可抵御哪些攻击。在游戏过程中的任何时刻,都可添加或移除任何攻击处理程序,而不会影响角色的其他行为。若不采用责任链模式,攻击处理程序的复杂组合会使角色类变得臃肿,且难以更改处理程序。

2. 模板方法模式概念

模板方法模式是面向对象软件设计中最简单的设计模式之一。其基本思想是在抽象类的一个方法中定义“标准”算法,该方法会调用其他应由子类重写的基本操作。之所以称为“模板”,是因为此方法定义的算法中缺少一些独特操作。

抽象类部分定义一些方法和算法,留下部分操作未定义。当具体子类重写基本操作时,会填补抽象类中模板方法的“空白”。模板方法模式的定义为:在一个操作中定义算法的骨架,将某些步骤延迟到子类中实现。它允许子类在不改变算法结构的情况下重新定义算法的某些步骤。

3. 使用模板方法模式的场景

以下情况可考虑使用模板方法模式:
- 需要一次性实现算法的不变部分,将可变的特定行为留给子类实现。
- 应将子类的公共行为提取到一个公共类中,以避免代码重复。将现有代码的差异分离到新操作中,然后用调用这些新操作的模板方法替换不同的代码。
- 需要对具体子类进行可控扩展。可以定义一个在特定点调用“钩子”操作的模板方法,子类可通过实现钩子来扩展这些点的功能。

4. 模板方法调用的操作类型

模板方法会调用以下五种类型的操作:
- 具体类或客户端类上的具体操作

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值