我有一个 C# Windows 服务,可以将传入的电子邮件和 twitter 评论路由到可用Agents
(我真的不知道 - 但该应用程序做了非常相似的事情)。所以,我有一个列表Agents
和逻辑,可以将这些电子邮件和推文路由到可用的代理。
我的代码看起来如何?
我有一AgentManager
门课程可以跟踪哪些代理可用、他们的技能水平等。我有一EmailManager
门课程可以路由Emails
到Agents
. 我有一个TwitterManager
路由Tweets
到Agents
.
所以 - 与 相关的逻辑Agents
,例如 的列表Agents
,谁可用,谁有能力 a Tweet
,谁有能力aEmail
等都在AgentManager
.
现在,当EmailManager
检测到有新电子邮件并需要将其分配给 时Agent
,我想要
从中获取我的代理列表AgentManager
(而不是返回数据库或在 中保留单独的代理列表EmailManager
)。
我最初的想法是通过引用传递AgentManager
给。EmailManager
我想这样做的原因是代理更改状态、添加/删除等 -EmailManager
将始终保持机智
h 最新的AgentManager
(因此也是最新的代理列表)。不知何故 - 这感觉很脏。我知道通过 ref 传递是不合时宜的,但这似乎是处理这个问题的好方法。我做错了吗?
编辑: 我通过引用传递 AgentManager 进行存储,而不是在 EmailManager 类中更改它。