1

すべての依存関係をどこで定義するかについて困惑しています。

実際にはまったく使用されていない可能性のあるすべての依存関係をロードするのは、非常にやり過ぎのように思えます。必要な場所でそれらを定義すると、コードの重複が発生します。

どこで何かが定義されますか? おそらく、依存関係の構成を一度開始する必要がありますか? たとえば、Logger または DB 接続です。

前もって感謝します。

4

1 に答える 1

1

私の仕事では、そのような問題があり、Symfony2 に基づくアプローチを使用しました。必要な依存関係を実際に作成するために使用されるラムダ関数を保持する単純な依存関係コンテナーがあり、最初の使用時にファクトリーが呼び出されます。

何かのようなもの:

DC['AFactory'] = function() { return new A(); };

DC には依存オブジェクトの「キャッシュ」があるため、DC->get('A') などを使用するたびに、最初にキャッシュがいっぱいかどうかをチェックします。関数が呼び出され、キャッシュに保存され、結果が得られます。このようにして、実際に使用されるまで、可能なすべての依存関係をロードする必要はありません。

于 2013-05-08T19:03:33.377 に答える