1つのオプションは、両方への参照を保持できる3番目のクラスを作成することです。
class ComManager {
// getter and setter for Conversation
// getter and setter for HunterCom
}
次に、このクラスをインスタンス化し、引数として両方のオブジェクトに渡します。
ComManager com = new ComManager();
Conversation c = new Conversation(com);
HunterCom ns = new HunterCom(com);
これで、両方のオブジェクトにへの参照がありますcom
。これには、との両方のgetterメソッドがConversation
ありHunterCom
、各スレッドの実行中に使用できます。
2番目のオプションは、インスタンス化する方法の順序を変更することです。引数なしで作成Conversation
しHunterCom
、次のように相互に参照を割り当てます。
Conversation c = new Conversation();
HunterCom ns = new HunterCom();
c.setHunterCom(ns);
ns.setConversation(c);
おそらく他にもいくつかの同様のオプションがあります。うまくいけば、これはあなたに他のパターンを見つけてあなたが探しているものを手に入れるための出発点を与えるでしょう。