我的座席中有很多行为,其编号和编号事先并不为人所知。行为是响应系统或代理本身中的某些事件的动作算法。 我想做类似的事情:
public abstract class AbstractBehaviour
{
... // etc
public abstract void Do();
}
class ConcreteBehaviour1 : AbstractBehaviour
{ ...//fields etc
public void Do() { ... }
}
class ConcreteBehaviour2 : AbstractBehaviour
{
...//fields etc
public void Do() { ... }
}
public class Agent : IAgent
{
private Dictionary<String, AbstractBehaviour> Behaviours;
private Type1 Field1;
private Type2 Firld2;
public void Algorithm( ... )
{
Behaviours[NeccessaryBehaviour1].Do();
Agent.Filed1 = Behaviours[NeccessaryBehaviour1].GetData();
Behaviours[NeccessaryBehaviour111].Do();
Agent.Filed2 = Behaviours[NeccessaryBehaviour111].GetData();
...
}
}
问题是我无法从行为中获得必要的数据。您能告诉我们可以使用哪种机制来节省灵活性并立即获取必要的数据吗? 我希望节省向代理添加功能的可能性。