如何在服务块的高级部分代理类型中动态设置代理类型。例如让我们说 我们有两种类型的客户,并且都由同一个服务块提供服务。想要根据客户类型更改代理类型,如何在 anylogic 中执行此操作?
两个客户分别是普通客户(reg_cust)和持卡人客户(ch_cust); 最初,我使用 agent.setColor() 在它们各自的源代码块中为这两个代理设置了颜色,红色代表常规,橙色代表持卡人。现在在服务块中,在代理类型的高级部分我使用了以下代码:
if (agent.getColor() == red) { 返回 reg_cust;}
else if (agent.getColor() == orange) { 返回 ch_cust;
我设置不同颜色的原因是当他们经过同一个街区时我无法区分他们。我不能调用我为这两个代理设置的参数。
有什么办法可以解决吗?
不是 100% 清楚你的意思,但也许这有帮助:
如果你想让不同的代理类型流经一个块,但仍然访问它们各自的特征,请将块的预期代理类型设置为
Agent
(最通用的选项)。
在区块的代码字段中,您可以区分和访问如下字段:
if (agent instanceof AgentType1) {
((AgentType1)agent).getSomeFieldOrMethodFromType1();
} else {
((AgentType2)agent).getSomeFieldOrMethodFromType2();
}
你是如何在服务站阻止符合你标准的特工的?