近日在用unity3D引擎,了解了下C#的delegate,
委托即把一部分功能独立出来,抽象出新对象执行部分接口。
这样做的好处是应对变化中的多个对象有相同的行为。
比如CF中攻击时换武器,枪就是变化的对象,攻击是相同的行为。
class character
{
private:
Object* equip;
public:
character(){
equip = NULL;
};
~character();
void setEquip(Object obj) {
equip = obj;
}
void attack(Target target)
{
this->equip->attack(target);
}
};
换武器只需重新setEquip即可。
C#实现了delegate关键字 详细原理参考这里