問題タブ [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.
delphi - 相互に使用するクラスの循環参照の問題
次の2つのクラスがあります。
TcmDataPanel は (第 3 世代) TFrame の子孫です。直接使用されるのではなく、複数の他の複合コンポーネントが派生します。
TcmDataConnector は、これらの他のコンポーネントのデータベース接続情報を保持するコンポーネントです。
私は ModelMaker を使用しており、オブザーバー パターンを実装して、「データ コネクタ」の状態が変わるたびに複数の「データ パネル」を自動的に更新できるようにしようとしています。
これが私の問題です。各クラスがインターフェイスセクションで他のクラスを使用しているため、「循環参照」の問題を回避できないようです。関連する「uses」参照を Interface セクションに配置しても、「宣言されていない識別子」の問題は解決されず、両方を同じユニットに配置しても解決されません。現在、それらは同じユニットにあり (別々のユニットで、一緒に試しました)、「宣言されていない識別子: TcmTPDataConnector」エラーが発生します。
どうすればこれを回避できますか?
================
更新:
私がいるのは金曜日の夜の午後 9 時 30 分で、完全に立ち往生していました。私の投稿からわずか数分後、あなたはその日を救った!! (夜!) ありがとう!!
男、私はStackOverflowが大好きです....だから、この学習のようなクレイジーな季節の私の友人です。: ) ありがとう、ありがとう、ありがとう...
python - Python での循環 (または循環) インポート
2 つのモジュールが相互にインポートするとどうなりますか?
問題を一般化すると、Python の循環インポートはどうなるでしょうか?
c - 循環typedef依存関係を解決しますか?
これらの構造体をtypedefする際に、次の循環依存関係を解決するための最良の方法は何ですか?
C言語タグに注意してください-私は標準のgccCで解決策を探しています。
python - Python での循環依存
と の 2 つのファイルがnode.py
あり、それぞれとのpath.py
2 つのクラスを定義しています。Node
Path
今日までの定義はオブジェクトをPath
参照していたので、私はそうしていましたNode
path.py
ファイルで。
ただし、今日の時点で、オブジェクトNode
を参照するための新しいメソッドを作成しました。Path
をインポートしようとしたときに問題が発生しましたpath.py
: 試してみたところ、プログラムが実行され、Path
を使用するメソッドが呼び出されたときに、定義されていないNode
という例外が発生しました。Node
私は何をしますか?
database - データベースで循環参照は許容されますか?
データベースで循環参照が許容されるのはいつですか?
理論的かつ実用的で、どんな助けでも大歓迎です。
c# - インターフェースの整理
R. Martin と M. Martin によるC# の Agile Principles, Patterns and Practices を読んでいるところです。インターフェース。
例として、すべてのカスタム Gui クラスを含むGuiプロジェクトがある場合、それらのインターフェイスをInterfacesプロジェクトに保持します。具体的には、Guiに CustomButton クラスがあり、 ICustomButton インターフェイスをInterfacesに保持します。
利点は、ICustomButton を必要とするすべてのクラスが、Gui自体への参照を必要とせず、はるかに軽量なInterfacesプロジェクトへの参照のみを必要とすることです。
また、Guiプロジェクトのクラスが変更されて再構築が必要になった場合、CustomButton を直接参照しているプロジェクトのみ再コンパイルが必要になりますが、ICustomButton を参照しているプロジェクトは変更されないままになる場合があります。
私はその概念を理解していますが、問題があります:
私はこのインターフェースを持っているとしましょう:
ご覧のとおり、具体的なクラスである AnimatorStrategy を参照しているため、別のプロジェクトに配置されます。それをAnimationと呼びましょう。インターフェイス プロジェクトはAnimationを参照する必要があります。一方、AnimationがInterfacesで定義されたインターフェイスを使用する場合は、それを参照する必要があります。
循環依存 - 「ここに来ました」。
この問題の唯一の解決策は、インターフェイスで定義されたすべてのメソッドが、それ自体がインターフェイスである入力を受け取ることです。これを実装しようとすると、ドミノ効果が発生する可能性が高く、最も基本的なクラスであってもすぐにインターフェイスを実装する必要があります。
開発でこのオーバーヘッドに対処したいかどうかはわかりません。
助言がありますか?
python - 前方宣言 - django に管理ページがありませんか?
これはおそらくデータベースの設計上の問題ですが、それ以上はわかりませんでした。他のいくつかのモデルの中で、私はこれらのモデルを持っています:
と
つまり、基本的に、バンドエンティティと多対多の関係を持つユーザーエンティティがあります。ねじれは、サイトでバンドを「作成」した特別なユーザーに、特別な編集機能を持たせたいということです。そこで先に進み、creator という ForeignKey を追加しました。Band がソース内の User の後に来たため、コードを実行できませんでした。だから私は前向きに宣言しclass Band(models.Model): pass
た。悲しいことに、これはあまり良い考えではないようです。現在、Band は django admin にインターフェース要素を表示しない唯一のモデルだからです (Bands モデルはそこにありますが、編集することはできません)。
私の質問は、これを適切に機能させるには、モデルにどのような変更を加える必要があるかということです。(もしあれば)
python - Python:デコレータを含む循環依存を取り除く方法は?
次の循環インポートのケースがありました(ここでは大幅に簡略化されています)。
array2image.py
変換モジュール:
tuti.py
utilsモジュールのテスト:
NameErrorで失敗しました。そこには循環依存が実際にはなかったので、これは私には正しく見えませんでした。私はそれや説明を避けるためのきちんとした方法を探していました...そしてこの質問を書く途中で私はそれを見つけました。
import
でデコレータの下を移動すると、 tuti.py
NameErrorが解決されます。
c++ - 循環 C++ ヘッダー インクルード
プロジェクトには2つのクラスがあります:
// mainw.h
//IFr.h
しかし、このコードをコンパイルできず、static IFr ifr;
行でエラーが発生します。この種のクロスインクルージョンは禁止されていますか?