最近、誰かがクラス1の形式での循環参照がクラス2の呼び出しをクラス1と見なす方法を教えてくれましたが、私はそれについて頭を悩ませることができません。つまり、それらのクラスが2つの異なるプロジェクトにある場合、問題は完全に理解できますが、同じプロジェクトにある場合、それは悪いことでしょうか?そして、場合によっては...それをどの程度正確に防ぐのですか?
例:ある種のサーバーがあります。クライアントはそれに接続し、ソケットから派生した、またはソケットを保持するクライアントは、ネットワーク関連のもの、およびアカウントIDなどの情報を処理します。このクライアントは、何か新しいことがあると、パケットハンドラーを呼び出します。パケットハンドラはクライアントからの情報を必要とし、情報を送り返す必要があります。クライアントをパケットハンドラーに渡すので、クライアントは送信関数などを呼び出すことができます。
これを心配した人は、これは言及された悪い習慣だと思い、クライアントクラス内ですべてのパケット処理を維持するサーバー、特に大きなサーバーはめったに見たことがありませんでしたが、これをまったく行わないようにしました。さらに、ハンドラーよりも先に進んで、より多くのクラスを呼び出すことができます。それをすべてクライアント内に保持するのは面倒です。それで...これは本当に悪い習慣ですか?
もしそうなら、どのようにそれを回避しますか?これを行うには、Clientの関数を再度呼び出すことなく、受け継ぐことができる、多かれ少なかれ複雑なオブジェクトのコレクションが必要になります...
私が言ったように、私はこの「問題」に頭を悩ませることはできません。誰かが私を助けることができますか?