【问题标题】:dependency injection and runtime dependency .NET best design pattern依赖注入和运行时依赖 .NET 最佳设计模式
【发布时间】:2013-04-09 11:57:54
【问题描述】:
我想在这种情况下使用依赖注入:
我有 n 个 IXMLParsers 抽象,每个抽象都有一个或多个实现。
我检查数据库中是否有活动的 IXMLParsers。
对于每个活动的 IXMLParser,我都会实例化正确的实现(但这违反了 DI ???)
那么,最好的设计模式是什么。
【问题讨论】:
标签:
c#
.net
oop
design-patterns
dependency-injection
【解决方案1】:
您可以注入一个将创建所需 IXMLParser 的工厂
interface IXmlParserFactory
{
IXMLParser CreateParser();
}
【解决方案2】:
您可以格式化您的构造函数以将参数作为
例子
Class A
{
IXMLParsers parser=null;
A(IXMLParsers p)
{
parser=p;
}
}
现在您可以根据需要创建不同类型的解析并发送到构造函数
例子
A obj1=new A(new Type1Parser);
A obj2=new A(new Type2Parser);
A obj3=new A(new Type3Parser);
等等……