4

プログラムの開始時に設定する必要がある次の依存関係があります。

//Set up dependencies
$fileSettings  = array(12, 'extra_lines', 'close_on_save');
$exporter      = new Exporter('exporterpath/filename.txt', $fileSettings);
$outputStream  = new OutputStream();
$businessModel = new BusinessModel('param1', 'param2');

//Run application
$application   = new Application($exporter, $outputStream, $businessModel);
$application->start();

ここで、メイン アプリケーションにいくつかの依存関係があることがわかります。これは、必要なものすべてを注入するためにブートストラップで必要なコードです。

これは依存性注入コンテナーを保証しますか?

そうでない場合、ファクトリメソッドの方が適していますか?

4

1 に答える 1

2

これは優れた依存性注入の記事です(PHPでも!)。

http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container

記事から:

ほとんどの場合、依存性注入の恩恵を受けるために依存性注入コンテナは必要ありません。

しかし、多くの依存関係を持つ多くの異なるオブジェクトを管理する必要がある場合、依存性注入コンテナは非常に役立ちます(たとえば、フレームワークを考えてみてください)。

正解は、シナリオがどれほど複雑かということと関係があると思います。ある時点で、どこかで、これらすべてをまとめる方法を知っている必要があります。それが退屈で醜いものになっているなら、それはコンテナの時間かもしれません。

実際には、実際にコンテナを用意する必要はありません。それが提供する柔軟性のために、それは単に通常は良い考えです。

于 2012-08-26T14:39:02.327 に答える