問題タブ [cyclic-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.
c# - 依存関係に基づいて配列内のアイテムをどのように再配置できますか?また、循環依存を検出します
タイプを考えると:
Field
アイテムの配列があるとしましょう:
したがって、明らかに次の順序でアイテムを取得します。
- ファーストネーム
- フルネーム
- 年
- 苗字
- 生年月日
私の最初の質問: 依存する列(FullNameとAge)が依存する列の後に配置されるように、リスト/配列内の項目を再配置するための最良の方法は何ですか?つまり、次のようになります。
- ファーストネーム
- 苗字
- フルネーム
- 生年月日
- 年
したがって、Age のようなフィールドは、それが依存するDateOfBirthの後に常に来ます。
私の2番目の質問:循環依存を検出する方法はありますか?つまり、に
Field1
依存し Field2
、
Field2
依存し Field3
、
Field3
依存する場合 Field1
だから私たちは輪に巻き込まれません。たとえば、大学を卒業した場合、就職するには2年の実務経験が必要です。しかし、実際の経験を積むには、まず最初に仕事をする必要があります。
java - バックエンドモジュールにはプレゼンテーション層からのURLが必要です-循環依存を回避する方法は?
私のWebアプリでのURL生成は、プレゼンテーション層を担当しています。次に、URLを含むメッセージを送信する別のモジュールについて考えてみます。(必ずしもプレゼンテーションからトリガーされるとは限りません)。ただし、プレゼンテーション層はモジュールについて認識している必要があります(トリガーである可能性があり、ユーザーはフロントエンドを使用してモジュールを構成できるため)。
つまり、モジュールは相互に依存しています...この循環依存をどのように回避できるかについてのアイデアはありますか?
私のデータベースにURLを保存することは私には正しくないようです。同じことが、2つのモジュールのマージにも当てはまります。
c++ - ヘッダファイル間の循環依存
と の 2 つのクラスでツリーのような構造を実装しようとしていTree
ますNode
。問題は、各クラスから他のクラスの関数を呼び出したいため、単純な前方宣言では不十分なことです。
例を見てみましょう:
Tree.h:
Node.h:
呼び出しツリー:
これは、問題を説明するための単純な例です。だから私が欲しいのは、オブジェクトTree
から関数を呼び出すことです。Node
更新 #1:回答ありがとうございます。Java のように問題を解決しようとしました。つまり、クラスごとに 1 つのファイルのみを使用しました。.cpp ファイルと .h ファイルの分離を開始する必要があるようです...
更新 #2:以下、ヒントに従って、完全なソリューションも貼り付けました。ありがとう、問題は解決しました。
c++ - カスタム ライブラリ名がシステム ライブラリと同じ場合の CMake 循環依存エラー
私のC++プロジェクトを構築するためにCMakeLists.txtファイルを書いています。
- libhybris.so: いくつかのエクスポートされた関数を含む共有ライブラリ。
- hybris: libhybris.so にリンクする実行可能ファイル
- libhybris.so にリンクするさまざまな共有ライブラリのセット
問題は、libhybris.so が (正規表現機能のために) libpcre に依存しているため、次のステートメントがあることです。
そして、ポイント 3 の共有ライブラリの 1 つは pcre.so と呼ばれているため、次のものもあります。
したがって、「cmake .」を実行すると、次のエラーが発生します。
CMake は libhybris.so pcre 依存関係 (システム libpcre.so) が私の pcre.so と同じであると考えているため、明らかにそうではありません。
pcre.so 名を変更せずにこの問題を解決するにはどうすればよいですか?
function - clojure関数の循環依存関係は、設計上特に許可されていませんか、それとも単なるリーダーの動作ですか?
clojureで次のことを行うと
次のエラーが発生します。
しかし、私が次のことをした場合:
それはうまく動作します。
これは設計によるものですか、それともClojureリーダーの動作方法の機能ですか?
c# - C# : 巡回リンクを使用したノードの xml シリアル化
私は次のようなクラス Node を持っています:
これは基本的に単純なグラフを定義します。グラフを人間が読める形式にシリアル化したいので、通常は xml が適していると思います。しかし、XML は循環的な依存関係を考慮して作成されたわけではありません :)
だから - 私のグラフのシリアル化に行くための最良の方法は何でしょうか?
私はいくつかの方法を考えることができます:
- XML を捨てて、独自のフォーマットを作成します。
- XML を使用し、各ノードに一意の ID をタグ付けし、接続リストをノードとは別に保存し、ロード後に解決します
しかし、他の人も以前に同じ問題を抱えていたに違いないと思うので、もっと良い選択肢があるかもしれません. 堅実なアプローチを知っている人はいますか?
f# - F# の異なるファイルからの型と関数間の循環依存の問題
私の現在のプロジェクトでは、40 の異なる型 (判別共用体) を持つ AST を使用しており、この AST のいくつかの型には循環依存があります。型はそれほど大きくないので、それらを 1 つのファイルにまとめtype ... and ...
、相互に依存する型の構築を適用しました。
現在、AST の各要素の下でいくつかの計算を行う関数を追加しています。数行のコードを含む多くの関数があるため、ソース コードを読みやすくするために、これらの関数を別のファイルに分けました。
循環依存関係がない場合は問題ありません。依存関数が同じファイルにある場合にも機能します。この場合、let rec function1 ... and function2 ...
構築を使用できます。
しかし、私の場合はうまくいきません。
また、署名ファイルがこれに役立つと誤って考えていましたが、その動作は C++ とは異なります。
- 関数/型のアクセス モード (内部/パブリック) を定義するために使用されます。また、関数/型のコメント ヘッダーをここに追加することもできます。
私が考える唯一の解決策は、すべての関数を 1 つのファイルに移動し、let rec ... and ... and ... and ... and ...
構築を使用することです。
誰かが異なる考えを持っている可能性がありますか?
python - Pythonでの巡回加群の依存関係と相対的なインポート
循環依存関係を持つ2つのモジュールがあるとします。
2つのモジュールはpkg
、空のディレクトリにあります__init__.py
。この回答で説明されているように、インポートpkg.a
または正常に動作します。インポートを相対インポートに変更した場合pkg.b
ImportError
モジュールの1つをインポートしようとすると、次のようになります。
なぜこのエラーが発生するのですか?状況は上記とほとんど同じではありませんか?(これはこの質問に関連していますか?)
編集:この質問はソフトウェア設計に関するものではありません。私は循環依存を回避する方法を知っていますが、とにかくエラーの理由に興味があります。
maven - Maven、鶏肉、卵の循環依存
'talktome'というプロジェクトがあり、実行時の依存関係はありません。
また、「talktome」に依存するプロジェクト「talktome-tools」もあります。
'talktome'のユニットテストが'talktome-tools'に依存していることに気付くまでは問題ありません。
どのような解決策がありますか?
java - Javaが内部インターフェースの継承を禁止しているのはなぜですか?
つまり、なぜ次の「循環依存」が不可能なのですか?
インターフェイスは外部クラスを参照しないため、これを許可する必要があります。ただし、コンパイラは、クラスの外部でこれらのインターフェイスを定義するように強制しています。この動作の論理的な説明はありますか?