0

我的代理中有许多行为,其数量和组成事先不知道。行为是响应系统或代理本身中的某些事件的动作算法。我想做这样的事情:

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();
        ...
    }
}

问题是我无法从行为中获取必要的数据。您能否说出可以使用什么机制来节省灵活性并立即获取必要的数据?我想节省为我的代理添加功能的可能性。

4

0 回答 0