您的位置:首页 > 大数据 > 人工智能

职责链模式(chain of responsibility)

2014-07-17 19:54 375 查看
怎么描述dota 中,一个rpg受到攻击,不同装备抵御不同攻击的过程呢?

比如ts运用魔法伤害攻击dr,这时候小黑身上有圆盾、相位、流浪斗篷等装备,判定过程自然是 圆盾、相位判定一下不能抵御魔法伤害,而流浪斗篷可以。

@interface Attack : NSObject 
{

}

@end
#import <Foundation/Foundation.h>
#import "Attack.h"

@interface AttackHandler : NSObject 
{
  @private
  AttackHandler *nextAttackHandler_;
}

@property (nonatomic, retain) AttackHandler *nextAttackHandler;

- (void) handleAttack:(Attack *)attack;

@end


这儿是想实现这样一种构思,装备和rpg都实现attackHandler接口,把rpg作为最底层的handler,当遭受一个袭击的时候从顶层装备开始层层处理,减轻受到的伤害。这样的好处是没有把所有的遇到袭击后的处理逻辑都存放在attackhandler当中,那样的话势必会造成处理逻辑过于庞大,而且当新出装备的时候都要修改整个逻辑,违反了开闭原则。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: