ApplicationSettingsクラスが、私のアプリケーションに適用される TimeoutPeriod、 DefaultUnitOfMeasure 、HistoryWindowSize などの設定の一般的なリポジトリであるとします。そして、MyClass がそれらの設定の 1 つである DefaultUnitOfMeasure を利用するとします。
Inversion of Control Containers の適切な使用についての私の読みは、コンストラクターでクラスの依存関係を定義することです。これについて間違っている場合は修正してください。
public class MyClass {
public MyClass(IDataSource ds, UnitOfMeasure default_uom) {...}
}
そして、次のような方法でクラスのインスタンス化を呼び出します
var mc = IoC.Container.Resolve<MyClass>();
IDataSourceに具体的な実装が割り当てられ、default_uom が接続されてApplicationSettings.DefaultUnitOfMeasureプロパティからインスタンス化されます。しかし、これらすべてのフープがジャンプするために本当に必要なのかどうか疑問に思う. 私は何のために自分を設定していますか?
public class MyClass {
public MyClass(IDataSource ds) {
UnitOfMeasure duom = IoC.Container.Resolve<UnitOfMeasure>("default_uom");
}
}
はい、私のクラスの多くはIoC.Containerに依存することになりますが、それは私のクラスのほとんどが持つ依存関係です。クラスが結合されている限り、それを最大限に活用する必要があるようです。アジャイルの達人、どこが間違っているか教えてください。