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