問題タブ [circular-dependency]
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.
.net - 依存性注入による循環依存性の解決
さまざまな Web サイトで、依存関係の挿入を使用して .NET アセンブリ間の循環依存関係を解決することを提案している記事をいくつか見てきました。これはビルド エラーを解決するかもしれませんが、実際には循環依存関係を解決していませんよね? 私には、アーキテクチャにまだ論理的なエラーがあるようです。私は狂っていますか、それとも他の人は同意しますか?
- これは DI の優れた使用方法ではありませんか?
- 循環依存の問題を解決する適切な方法ではありませんか?
apache-flex - フレックス ライブラリの循環依存関係
相互に参照する 2 つの Flex ライブラリがあります。どちらもリンク タイプ " External
" を使用し、Loader クラスを使用して手動でロードします。
エラー " A cycle was detected in the build path of project: foo
" が表示されます。
これを解決する方法はありますか?コンパイラのパラメータか何かかもしれません。
external
リンクタイプではソースコードがライブラリにコンパイルされないため、問題はないと思います...
python - Python での循環インポートの依存関係
次のディレクトリ構造があるとします。
a
パッケージのに__init__.py
、c
パッケージがインポートされます。しかし、c_file.py
インポートしa.b.d
ます。
をインポートしようとすると、b
存在しないと言ってプログラムが失敗します。(そして、インポートの途中だったので、実際には存在しません。)c_file.py
a.b.d
この問題はどのように解決できますか?
python - 同じプロセスで異なるバージョンの Python ライブラリを使用する
開発中の Python ライブラリがあります。開発中、そのライブラリの一部を使用して、新しいバージョンをテストしたいと考えています。つまり、開発コードをテストするために安定したコードを使用します。Pythonでこれを行う方法はありますか?
編集:より具体的に言うと、多くの便利なものを備えたライブラリ (LibA) があります。また、いくつかのテスト機能 (LibT) を提供するために、LibA を使用するテスト ライブラリもあります。LibT を使用して LibA をテストしたいのですが、LibT は LibA に依存しているため、LibT をテストしている間は、むしろ安定したバージョンの LibA を使用したいと考えています (テストがパスした場合にのみ、新しい LibA で動作するように LibT を変更するためなど)。そのため、単体テストを実行する場合、LibA-dev テストは LibA-stable に依存する LibT コードを使用します。
私たちが思いついたアイデアの 1 つは、別のプロセスで RPyC を使用して安定したコードを呼び出すことですが、気密な方法で実装するのは難しいです (適切に停止することなどを確認し、複数のインスタンスを同時に実行できるようにするなど)。同じコンピュータなど)。
ありがとう
objective-c - 可能性のある循環参照の問題
私はばかではありませんが、ヘッダー ファイルを見て、ときどきバカのように感じることがあります。おそらく非常に複雑なセットアップで、解決できないエラーがあります。ここでは、私ができる限り詳細に単純化しています....
- Model クラスを含む Controller クラスがあります。
- アクションをキャプチャしてコントローラーと通信する Scene クラスがあります。
- Model クラスと通信して Model の状態を出力する Layer クラスがあります。
- Scene クラスには、出力専用の Layer クラスが含まれています。
- シーンは、Cocos2D フレームワークによって決定されるレイヤーを保持する必要があります。
- 特定の Scene クラスは、Controller クラスへの参照を保持する RootScene クラスから派生します。
- 特定の Layer クラスは、Model クラスへの参照を保持する RootLayer クラスから派生します。
- コントローラーはシーンの作成を担当し、シーンはレイヤーの作成を担当します。
問題は、レイヤーを作成し、コントローラーのモデルをレイヤーのモデルに渡すときに発生します( AScene.m
)。「構造体または共用体ではないメンバー「モデル」のリクエスト」を取得します。キャストが機能せず、これらのクラスが互いに会話できるようにする方法がわかりません。問題の一部は、 Controller クラスに Model クラスが含まれていることだと思います。
Controller.h
Controller.m
RootScene.h
RootScene.m
AScene.h
AScene.m
RootLayer.h
RootLayer.m
ALayer.h
ALayer.m
c# - 循環依存を避けるために、.NET でプロジェクト/クラスをどのように配置すればよいですか?
私のプログラムは、C# と WPFで文法を描画しようとしています。私は持っている:
1 可視化方法のツリー構造を記述する DataStructure プロジェクト。ツリー内の各ノードは、文法内の記号に関連しています。上部のノードは、その非終端記号のルールを定義します。
1 WPF でユーザー コントロールを記述する Drawer プロジェクト。
ツリーをトラバースするときにDataStructure.draw();を呼び出すため、データ構造でドロワーを参照する必要があります。各ノードで。また、ドロワー プロジェクトでデータ構造を参照する必要もあります。これにより、GUI をクリックしたユーザーに応答できるようになり、データ構造が更新されます。
これにより、循環依存が作成されます。コントローラークラスを使用しようとしましたが、わかりません:/
.net - 今後の.Netプロジェクトのアイデアで起こりうる循環参照の状況を予測しています...注意すべき点はありますか?
したがって、このデータアクセス層があり、データベースにもログインしたいと思います。自分のドッグフードを食べるという精神で、データアクセス層を使用してログを記録したいと思います。ただし、データアクセス自体もログに記録したいと思います。そのようです:
フィードバックループに入るリスクはありますか?もしそうなら、どうすればそれを避けることができますか?プロジェクトの参照が相互にループし、構築が困難になる可能性がありますか?過去にこの(アンチ?)パターンにどのようにうまくアプローチしましたか?
c# - 依存性注入は循環依存を防ぐことができますか?
Project#1には、project#2が参照するいくつかのインターフェースとクラスがあります。
ここで、Project#1でProject#2の実装を使用したいのですが、vs.netは循環依存について文句を言います。
Project#1で依存関係インジェクションを使用し、Project#2の実装にバインドする場合(インターフェイスコントラクトに準拠しているため)、これは機能しますか、それとも実行時に循環依存関係エラーメッセージが表示されますか?
python - ImportError: モデル A はモデル B を参照し、モデル B はモデル A を参照します
これは Django よりも Python に関する質問だと思います。
しかし、基本的に私はモデルAでやっています:
モデル B では次のようになります。
結果:
名前 ModelA をインポートできません
私は何か禁止されていることをしていますか?ありがとう
c++ - C++: テンプレート パラメーターの循環依存性
これは、言語に関する質問というよりも、ベスト プラクティスに関する質問です。なぜなら、C++ でよくあるつまずきのブロックと思われるものに対する有効な解決策が既にあるからです。
テンプレート パラメーターの置換における典型的な循環依存の問題を扱っています。次のクラスのペアがあります。
そして、それぞれを次のようにインスタンス化したいと思います:
つまり、A を B に、B を A に「バインド」したいということです。
継承トリックを使用した前方宣言を通じて、問題を大まかに解決できます。
しかし、 とは実際には と ではないのでsA
、これは一連の問題を引き起こします。たとえば、のコンストラクターを に適切に複製したり、何らかの形でコードの周りにきらめくキャストをしたりせずに、 のコンストラクターを呼び出すことはできません。sB
A
B
A
sA
私の質問は、この問題に対処するための最も実用的な方法は何ですか? この問題に対する特別に賢い解決策はありますか?
MSVC2008 と G++ の両方を使用していますが、コンパイラ固有の拡張機能を使用したソリューションは大歓迎です。
ありがとう、
アレク