怎么描述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当中,那样的话势必会造成处理逻辑过于庞大,而且当新出装备的时候都要修改整个逻辑,违反了开闭原则。