我有一个 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 类中更改它。