私はWPF C#でソフトウェアを開発しています。私のソフトウェアには複数のウィンドウがあります。私は複数のウィンドウ(私はレガシーコードを使用しているので、私はそのオブジェクトを静的にすることはできません)上のオブジェクトの同じインスタンスを共有する必要があります。複数のウィンドウ間で共有する必要のある変数を持つ静的クラスを持つことをお勧めします。そのため、コンストラクタに渡すのを避けることができます。ありがとうございます複数のWindowsにまたがる共有変数の静的クラス
-4
A
答えて
1
静的クラスを使用するか、同じシングルトンインスタンスを持つすべてのウィンドウ/ビューモデルを挿入できます。これは必ずしもシングルトンのデザインパターンを実際に実装するクラスである必要はありませんが、ウィンドウ/ビューモデルに非常に同じインスタンスを挿入する必要があります。
主に静的ではない共有クラスが実装を簡単に置き換えることができるため、クラスの単体テストをより簡単に行うことができるため、後者のアプローチが優先されます。
少なくとも一般的なケースでは、グローバルな静的クラスを使用することは実際には良い習慣ではありませんが、これはあなたの特定のシナリオではまだ有効です。
関連する問題
- 1. Android静的変数と共有設定
- 2. 複数のクラスにわたる静的イメージ変数
- 3. グローバル静的変数または共有設定android
- 4. サブクラスはC++で親クラスの静的変数を共有していますか?
- 5. 関数内静的変数と静的クラス変数の比較
- 6. 共有オブジェクト内の静的ライブラリの静的関数
- 7. クラスの静的メンバ変数
- 8. 共有依存関係を持つ複数の静的ライブラリ - iOS
- 9. Tomcat:セッション間で静的変数とメソッドを共有します。
- 10. 複数のサーバーのイベントと共有クラス
- 11. 変数を複数の変数に共有するinclude(php)
- 12. 動的リンクされた共有ライブラリのグローバル変数と静的変数はどうなりますか?
- 13. SignalRクラス(ハブ)を使用した静的クラスの共有
- 14. 複数の共有リンクを複数の共有リンクに接続...
- 15. ガベージコレクタと静的クラス、変数
- 16. Python - 静的クラス変数
- 17. Java静的クラス/変数
- 18. クラスの静的関数は、グローバル静的変数にアクセスできますか?
- 19. 共通のクラスを共有する複数のページのCSSを変更する
- 20. 静的クラスと複数の同時リクエスト
- 21. 複数のクラスの共通の静的変数を持っている場合、それらは(同じ範囲内?)共有されている
- 22. 複数のタブにまたがる2つの共有ボタン
- 23. 複数のプロジェクトにまたがるEntity Frameworkライブラリの共有
- 24. ASP.Net複数のアプリケーションにまたがるマスターページ、Js、CSSの共有
- 25. PHP静的変数をクラス内の他の変数に使用
- 26. 複数のクラスオブジェクトを共有し、共通の変数
- 27. Javaの非静的クラスで静的変数を宣言する
- 28. 共有メモリの変数が
- 29. AngularJs Cookie:複数のタブにまたがって共有する
- 30. Pythonグローバル変数:関数クラスと関数の間の共有
'いいですか?いいえ、しかし、依存関係注入を使用して、アプリケーション全体で1つのインスタンスを共有することができます。それはもっと理想的です。なぜあなたはそれらをコンストラクタに渡すのを避けたいのですか? – Jonesopolis
適切なMVVMモデルに従っている場合、異なるウィンドウは同じデータコンテキストを共有するので、統計情報は必要ありません – MikeT
すべてのウィンドウが必ずしも同じDataContextを共有するとは限りません。これは、すべてのウィンドウ/ビューに対して1つの巨大なビューモデルがあることを意味しますか? – mm8