Eclipse 4 依存性注入のベスト プラクティスを知りたいです。この件についてインターネットで読んだ後、私は次の戦略を思いつきました。
要件
アプリケーションのデータ モデル (会社、従業員、顧客など) を共有して、フレームワーク オブジェクト (ビュー パーツ、ハンドラー、リスナーなど) ができるだけ少ない結合でアクセスできるようにします。
提案された戦略
lifeCycleURI プラグイン プロパティを使用して、アプリケーションの起動時にトリガーされるハンドラーを登録しました。このようなハンドラーは、「空の」最上位データ モデル コンテナー オブジェクトを作成し、それを EclipseContext に配置します。アプリケーションが停止した場合も破棄されます。
すべての Eclipse フレームワーク クラス (ビュー パーツ、ハンドラー) は、従来の DI を使用して、そのようなデータ モデル オブジェクトを挿入します。
- クラス コンストラクターで作成されたボタン リスナーには、データ モデル オブジェクトを挿入することはできません。そのため、 ContextInjectionFactory.make() で作成してインジェクションを実行できると思いました。これにより、リスナーを作成するクラスが CIF と結合されますが、大きな利点は、インジェクションがすぐに機能することです。
これは、可能な限り少ない結合で E4 DI を活用するために、私が見つけた最良のソリューションです。私の意見では、この CIF との結合が弱点です。私の質問は、この結合を取り除くための戦略が存在するかどうか、または同じ要件に対する代替ソリューションが存在するかどうかです。