2011-12-29 14 views
0

私はシングルトンの観点からのDIの利点とボイラープレートコードの削減を理解しています。しかし、私は、あまりにもウィキペディアでこれを見つけた:依存性注入、再コンパイルなしの実装変更

をもう一つの利点は、私は春やGuiceのそれを使用すると、特定のサービスの 代替実装は 再コンパイルコード

することなく使用することができるので、それは構成の柔軟性を提供することです常に1サービスと1サービスの間で契約を結ぶ。機能が不足しているか、ステートメントを間違って理解していますか?

答えて

2

通常、構成を含むアプリケーションの部分を再コンパイルする必要がありますが、アプリケーションの残りの部分は同じ状態を維持できます。これらのパーツを別々のモジュール/アセンブリに入れると、それらのパーツを再コンパイルする必要はありません。 XMLを使用してコンテナを構成すると(理論上)、何も再コンパイルする必要はありません。

希望すれば、一歩進んで実行時に(デコレータを使用して)動作を変更することもできます。

+1

+1詳細はこちらをご覧ください:http://stackoverflow.com/questions/2512316/ioc-dependency-injection-please-explain-code-versus-xml –

0

特定のサービスにどの実装を使用するかの決定が設定されている場合、使用する代替実装が既に存在する限り、コードの変更を行わずに設定を変更することができます。

これはSpringにとって非常に当てはまりますが、この決定は通常、アプリケーションの起動時に読み込まれるXML設定ファイルで行われます。