問題タブ [cyclic-reference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1023 参照

java - メソッドが再帰的である場合に循環依存を避けるためにリファクタリングする方法は?

オブジェクトを必要な型にキャストするコードを作成しました。また、必要な型がカスタム クラス オブジェクトで、別のオブジェクトがある場合は、再帰的にキャストする必要があります。ところで: 入力が hashMap の場合、オブジェクトを作成する必要があることがわかります。HashMap の内側に別の hashMap がある場合、そのオブジェクトがオブジェクト内にあることを理解する必要があります。オブジェクト内では、内側の hashMap から構築する必要があります。それを構築するには、メソッドを再帰的に呼び出します。私がここに描いたコード。しかし、これらの 2 つのクラス Castor と MyBuilder は両方ともサイクルになっています。私はそれを壊す方法がわかりません。メソッドが循環的でない場合、依存関係を断ち切ることができます。しかし、サイクルで誰かが助けることができますか? どのパターンを導入できますか、またはこれをどのようにリファクタリングできますか?

前もって感謝します。

コードは次のようなものです: サイクル pl への高速アクセスについては、次を参照してください: returnValue castPrimitive( .... および void setParameterToEntity.....

} }

0 投票する
1 に答える
317 参照

delphi - サードパーティの循環 dll 依存関係を回避しますか?

サードパーティ アプリケーションで TE Edit (ter32.dll から) のテキストにアクセスしようとしています。(これに関する最初の投稿はこちら) APIを調べて、関数にアクセスするために dll を動的にロードしようとしました。残念ながら、この ter32.dll の (アフターマーケットのリワーク) には多くの依存関係があります。必要に応じて、必要な各 dll を動的にロードしようとしましたが、循環依存関係に遭遇しました。ter32.dll には x が必要です。x には y が必要です。x が必要なため、y はロードされません。これらを遅延して静的にロードする必要がありますか? アプリケーションにオーバーヘッド/肥大化/依存関係が必要ないので、そうではないことを願っています。

1)何が欠けていますか?
2)これを回避する方法はありますか?
3) ter32.dll の TE Edit 内のテキストにアクセスする他の方法を持っている人はいますか?

0 投票する
2 に答える
239 参照

java - 循環依存関係 - 常に間違っていますか?

1.次の構造が間違っているかどうか、その理由とその解決策を知りたい: ネット ゲーム用のクライアントを実装したと仮定する クライアントには 2 つのメイン パッケージがあります:
A.GUI - すべてのswing JPanelsなど
B.LogicEngine

ロジック エンジンには clientThread というクラスがあります。このクラスの主な目的は、サーバーと通信して、Gui パネルで実行するコマンドを取得し、Gui パネルでのユーザー選択の結果として情報を送り返すことです。

2.そうするために、メインのGuiパネルの参照をclientThreadに保持する傾向があり、その逆も同様ですが、異なるプロジェクトの2つのクラス間で循環参照を行うのは間違っていますか?

3.オブジェクト指向プログラミングの問題で、論理エンジンパッケージ上にあるにもかかわらず、ゲームの流れを何らかの形で管理するクライアントスレッドのようなクラス内からGuiに表示されるものを実行するのは間違っていますか?

4.また、Gui 部分が論理部分を認識して使用している場合、それは問題になりますか?

アドバイスを聞きたい
です よろしくお願いします

0 投票する
0 に答える
368 参照

.net - Entity Framework 4.1でCASCADEを使用せずに多対多の関係を作成する方法は?

Entity Framework 4.1 を使用して MVC3 Web アプリを作成しています。問題は、循環参照があり、例外が発生することです。間違っている理由を理解したので、多対多の関係から ON DELETE/UPDATE CASCADE を削除したいと思います。問題は、それを行う方法がわからないことです...それが私の問題の説明です。ここに私のモデルがあります:

質問 ->-。
       | | | |
       | | | |
      /|\ |
  フィールド | フィールド
       | | | |
       | | | |
      /|\ |
 答え-----'

すべての質問には複数のフィールドがあり、すべてのフィールドには複数の回答があります。質問または回答を削除するときに、対応する回答を削除したいと考えています。ここで追加の作業を行う必要はないと思います。ただし、各回答には複数の依存する質問を含めることができます (すべての質問は多くの回答に依存できます)。この関係は、たとえば、他の質問への回答が YES の場合にのみ質問を表示するために使用されます... 回答を削除する場合、それに依存するすべての質問を削除するのではなく、依存関係のみを削除します。

私のモデル Question オブジェクトには次のものがあります。

および QuestionAnswer オブジェクトには次のものがあります。

次のプロパティを持つ DataContext クラスの OnModelCreating イベントで予想される動作を定義する方法:


編集

問題の解決策を見つけました!次のような QuestionAnswerDependency オブジェクトを手動で作成しました。

QuestionId プロパティを null 可能にしました。これにより、CASCADE ON DELETE が発生せず、循環参照が解決されます。Question および QuestionAnswer オブジェクトには、 QuestionAnswerDependency オブジェクトのリストがあります。

EFは私が望むことを自動的に行うことはできないと思いますが、「中間オブジェクト」を作成せずにそれを達成する方法についてアイデアがあれば教えてください。

0 投票する
1 に答える
333 参照

.net - MongoDb C#ドライバーは循環参照をサポートしていますか?

現在のシナリオでNhibernateを使用するのにますます時間がかかるため、Mongoを使用するために小さなサイドプロジェクトを移植することを検討していました。

私はもともとNoRMを試してみましたが、循環参照からのサポートがあり、正常に機能するブランチがありましたが、公式のc#ドライバーがサポートしているかどうかを示すドキュメントが見つかりません。

状況と循環参照がある理由は、道路のリストを含むロケーションオブジェクトがあり、各道路には別のロケーションへのリンクがあるためです。これは、パスファインダーの単純なノードのセットと非常によく似ています。

問題は、これらのオブジェクトから全世界が構築され(実際のシナリオではより多くのプロパティがあります)、すべてが相互にリンクしていることですが、循環参照を処理できなければ、この問題をどのように解決できるかわかりません。各道路は、始点と終点を知っている必要があります。

妥協案の1つは、ロケーションオブジェクトを削除し、代わりにロケーションを参照するIDを設定することですが、各サブロケーションを個別にクエリする必要があります。これは一度だけ行われ、その後メモリに保持されます。これは、すべての可能な場所とすべての可能なルートを含む巨大なマップがあり、ポイント間のクイックパスを見つけることができるためです。

場所と道路がドキュメントストレージアプローチに適していない場合があり、別の方法で保存できます...

0 投票する
5 に答える
9577 参照

c# - 存在しない構造体レイアウトで循環する

これは私のコードの一部を簡略化したものです。

問題は、Struct member 'info' causes a cycle in the struct layout.値型の振る舞いのような構造体の後に発生するエラーです。クラスとクローンメンバー関数を使用してこれをシミュレートすることはできますが、なぜそうする必要があるのか​​わかりません。

このエラーはどのように真実ですか?同様の状況では、再帰によって構築が永久に発生する可能性がありますが、この場合に発生する可能性のある方法は考えられません。以下は、プログラムがコンパイルされる場合に問題ないはずの例です。

編集:

私が使用した解決策は、「info」を構造体ではなくクラスにし、それを渡すときに使用したコピーを返すメンバー関数を与えることでした。事実上、構造体と同じ動作をシミュレートしますが、クラスを使用します。

また、答えを探しながら次の質問を作成しました。

C#での値型クラス定義?

0 投票する
4 に答える
1676 参照

c++ - std::shared_ptr で循環参照を検出または回避するにはどうすればよいですか?

weak_ptrサイクルを断ち切る必要があることは知っていますが、それは問題が発見された後の修正です。循環参照を検出または回避するために使用できるパターンまたはツールはありますか?

0 投票する
1 に答える
988 参照

python - django: models.py でのリスナーの登録と循環インポートの問題

モデルからレコードを作成するいくつかのシグナルリスナーに取り組んでいます。そしてdjango docsでは、リスナーはmodels.pyに登録する必要があると言われています。リスナーは行数がかなり多いので、models.py のファイルからロジックを分離したいと思います。私の場合、すでに循環インポートの問題が発生しているようです。コードを分離したまま、この問題を回避する最善の方法は何ですか?

現在、次のようになっています: models.py

listeners.py

0 投票する
1 に答える
189 参照

wcf - POCO エンティティと Silverlight サービスを使用した循環参照

それらの間に関係を持ついくつかの POCO エンティティを作成しました。たとえば、「個人」エンティティには、「コレクション」エンティティとの OneToMany 関係があります。これが私がそれらを定義した方法です:

そして Collection エンティティ:

私のサービスは Silverlight 互換サービスで、次のように定義されています。

これは期待どおりに機能します。データ メンバーが設定された個々のオブジェクトと、コレクションの null 配列を受け取ります。

ただし、関係を含めようとすると:

スタック オーバーフローの例外がありますが、これは非常に厄介です。これは循環参照エラーであると確信していますが、すべての解決策を試しました (IsReference=true を DataContract 属性に追加します...)。この唯一の機能は、Collection エンティティの DataMember 属性を IgnoreDataMember 属性に置き換えることですが、双方向の関係が失われます。これは、この特定のエンティティに必要なものです...

0 投票する
4 に答える
11460 参照

python - Pythonの参照サイクルとは何ですか?

Pythonの公式ドキュメントを調べましたが、参照サイクルが何であるかがわかりません。私はGCモジュールを理解しようとしているので、誰かが私にとってそれが何であるかを明確にしてください。返信ありがとうございます。