私は、受信メールとツイッターのコメントを利用できるようにルーティングするC#Windowsサービスを持っていますAgents
(私はそうではありませんが、アプリは非常に似たようなことをします)。Agents
そのため、これらのメールとツイートを利用可能なエージェントにルーティングするためのリストとロジックがあります。
私のコードはどのように見えますか?
AgentManager
どのエージェントが対応可能か、そのスキル レベルなどを追跡するクラスがあります。 にEmailManager
ルーティングEmails
するクラスがありAgents
ます。にルーティングするクラスTwitterManager
があります。Tweets
Agents
Agents
のリストなど、に関連する論理はAgents
、誰が利用可能か、誰が能力を持っているかTweet
、誰が能力を持っているかEmail
などはすべてAgentManager
.
今、EmailManager
新しい電子メールがあり、それをに割り当てる必要があることを検出したときAgent
、私はしたい
からエージェントのリストを取得しAgentManager
ます (データベースに戻ったり、別のエージェントのリストを保持したりするのではなくEmailManager
)。
私の最初の考えは、参照によって渡すAgentManager
ことEmailManager
です。私がこれをしたい理由は、エージェントが状態を変更したり、追加/削除されたりしたときなどです-EmailManager
常に機能します
h 最新AgentManager
(したがって、最新のエージェント リスト)。なんとなく――これは汚い。ref を渡すのが時代遅れであることはわかっていますが、これを処理するには良い方法のようです。私はそれを間違っていますか?
編集: 私は、ストレージの参照によって AgentManager を渡しています。EmailManager クラスで変更するのではありません。