我有这个工厂:
public static class ClassFactory
{
public static IEnumHereClass CreateClass(EnumHere type)
{
switch (type)
{
case EnumHere.First:
return new EnumHereFirstClass();
case EnumHere.Second:
return new EnumHereSecondClass();
default:
throw new NotSupportedException();
}
}
}
看起来不错。但是我在这里看到了问题:我无法使用IoC容器(例如统一)注入它并且无法模拟它。我想进行此更改(使用接口注入并删除 static ):
public class ClassFactory : IClassFactory
{
public IEnumHereClass CreateClass(EnumHere type)
{
switch (type)
{
case EnumHere.First:
return new EnumHereFirstClass();
case EnumHere.Second:
return new EnumHereSecondClass();
default:
throw new NotSupportedException();
}
}
}
您怎么看?
答案 0 :(得分:0)
<强>意图强>
Abstract Factory提供了用于创建一系列相关对象的界面,而无需明确指定其类。
我发现此问题之前已使用factory-method和factory进行了标记。不要与抽象工厂混淆。