欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » 下载列表 » 正文

装饰模式decorator详解--物品锻造 与Decorator模式

更新时间: 2011-07-01 14:09  下载次数:(1048)
分享到:

引言
物品锻造是各类奇幻游戏中的常见功能,就拿众所周知的Diablo来说吧。假设角色拥有一把单手剑,可能基础攻击力只有13,但是它有三个装备孔。当给剑镶嵌一颗蓝宝石的时候,它就拥有了额外的冰冻效果并多加2点攻击力;当给剑镶嵌一颗红宝石的时候,它又拥有了额外的火焰伤害并多加3点攻击力;当给剑镶嵌一颗绿宝石的时候,它又拥有了额外的中毒伤害并多加的4点攻击力。当然,也可以三个孔都镶嵌同一色的宝石。本文将说明如何使用Decorator模式来完成这样的设计。
使用继承来扩展
 

我们首先想到应该有个基类 Weapon,它供所有各式各样的武器继承,比如说Sword、Axe、Bow。Description字段代表武器的说明,比如“One-Hand light Sword”,Damage()方法则用于获取武器的伤害,GetDescription用于获取武器的说明。在不考虑宝石的情况下,我们得到下面的设计:
 

现在我们考虑如何创建镶嵌有宝石的武器。我们首先考虑到可以用继承来实现这样的设计,结果却发现如果我们需要定义所有嵌宝石的剑(Sword),就需要3+6+7 = 16个类(NOTE:三个物品孔

资源来源:
• 本地下载

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

相关下载资料