將配置信息注入到新構建的實例中的以下方法的優缺點是什麼?你會用哪個?依賴注入設計問題
interface IApplicationConfiguration {
string SourcePath { get; }
string DestinationPath { get; }
}
選項之一:
class DailyFilePathProvider {
private readonly string sourcePath;
private readonly string destinationPath;
public DailyFilePathProvider(string sourcePath, string destinationPath) {
this.sourcePath = sourcePath;
this.destinationPath = destinationPath;
}
}
var configuration = container.Resolve<IApplicationConfiguration>();
var provider = new DailyFilePathProvider(configuration.SourcePath, configuration.DestinationPath);
選項二:
class DailyFilePathProvider {
private readonly string sourcePath;
private readonly string destinationPath;
public DailyFilePathProvider(IApplicationConfiguration configuration) {
this.sourcePath = configuration.SourcePath;
this.destinationPath = configuration.DestinationPath;
}
}
var configuration = container.Resolve<IApplicationConfiguration>();
var provider = new DailyFilePathProvider(configuration);
感謝所有的想法。
我更願意將ApplicationConfiguration *留在IoC之外 – 2011-02-11 14:48:11
你是什麼意思? – JackBlackAndWhite 2011-02-11 14:49:27