循環依存は良いことか悪いことか [closed] 質問する

循環依存は良いことか悪いことか [closed] 質問する

なぜ循環依存を避ける必要があるのか​​知りたいです。現実世界で考えてみると、循環依存はかなり重要です。ある友人が他の友人から何かを必要とし、別の友人がこの友人から何かを必要とするなど、循環的ですよね?

では、なぜ循環依存は悪い設計なのでしょうか? これを本当に避ける必要がある場合、そのような状況に対してオブジェクト指向の世界で可能な最善の設計とは何でしょうか?

ベストアンサー1

循環依存関係の問題は、鶏が先か卵が先かの問題に似ています。

あなたが私に何かを準備してもらうことを期待し、私があなたに何かを準備してもらうことを期待している場合、どのように始めればよいでしょうか?

この結果、どのように終わるかが問題になります。私があなたのリソースへの参照を持っていて、あなたが私のリソースへの参照を持っている場合、私はあなたを壊してしまうのでクリーンアップできませんし、あなたは私を壊してしまうのでクリーンアップできません。

どちらの場合も、解決策は仲介者を導入し、依存関係を当事者の一方からその仲介者に渡すことです。つまり、あなたがリソースを仲介者に渡した場合、あなたは私と仲介者に依存し、私は仲介者に依存することになります。したがって、あなたはリソースを保有していないためクリーンアップでき、誰も私に依存していないため私はクリーンアップでき、仲介者はクリーンアップできます。

おすすめ記事