同一块中的任意逻辑多个代理

问题描述 投票:0回答:2

如何在服务块的高级部分代理类型中动态设置代理类型。例如让我们说 我们有两种类型的客户,并且都由同一个服务块提供服务。想要根据客户类型更改代理类型,如何在 anylogic 中执行此操作?

两个客户分别是普通客户(reg_cust)和持卡人客户(ch_cust); 最初,我使用 agent.setColor() 在它们各自的源代码块中为这两个代理设置了颜色,红色代表常规,橙色代表持卡人。现在在服务块中,在代理类型的高级部分我使用了以下代码:

if (agent.getColor() == red) { 返回 reg_cust;}

else if (agent.getColor() == orange) { 返回 ch_cust;

我设置不同颜色的原因是当他们经过同一个街区时我无法区分他们。我不能调用我为这两个代理设置的参数。

有什么办法可以解决吗?

java simulation anylogic
2个回答
0
投票

不是 100% 清楚你的意思,但也许这有帮助:

如果你想让不同的代理类型流经一个块,但仍然访问它们各自的特征,请将块的预期代理类型设置为

Agent
(最通用的选项)。

在区块的代码字段中,您可以区分和访问如下字段:

if (agent instanceof AgentType1) {
    ((AgentType1)agent).getSomeFieldOrMethodFromType1();
} else {
    ((AgentType2)agent).getSomeFieldOrMethodFromType2();
}

0
投票

你是如何在服务站阻止符合你标准的特工的?

© www.soinside.com 2019 - 2024. All rights reserved.