C# C中的简单工厂设计——从另一家工厂调用工厂?
我需要用C#中的一个简单工厂创建一个对象,该对象有一个依赖项对象,该依赖项对象也是使用另一个简单工厂创建的 从另一个简单工厂调用一个简单工厂是一个好的设计原则吗?我想我可能在做一些奇怪的事情 我有以下资料:C# C中的简单工厂设计——从另一家工厂调用工厂?,c#,oop,design-patterns,factory,C#,Oop,Design Patterns,Factory,我需要用C#中的一个简单工厂创建一个对象,该对象有一个依赖项对象,该依赖项对象也是使用另一个简单工厂创建的 从另一个简单工厂调用一个简单工厂是一个好的设计原则吗?我想我可能在做一些奇怪的事情 我有以下资料: interface IObjecAtImplement { void task(); } interface IObjecBtImplement { void taskFoo(); void anotherTaskFoo(); } public static cl
interface IObjecAtImplement {
void task();
}
interface IObjecBtImplement {
void taskFoo();
void anotherTaskFoo();
}
public static class ObjectAFactory {
public static IObjecAtImplement Get(string objecttype) {
IObjectBImplement objectB = ObjectBFactory.Get(objecttype);
switch (objecttype)
case "A";
return ObjectAFirstImplementacion(objectB);
case "B";
return ObjectASecondImplementacion(objectB);
}
}
public static class ObjectBFactory {
public static IObjecBtImplement Get(string objecttype) {
switch (objecttype)
case "A";
return new ObjectBFirstImplementacion();
case "B";
return new ObjectBSecondImplementacion();
}
}
}
这是个好主意吗?还有别的办法吗?(代码括号编写得不好,这只是一个示例)看起来您正在尝试将两种模式组合在一个模式中:和。工厂负责创建对象,而注入依赖项通常是IoC容器的一个部门
为了保持类的明确职责,我建议您考虑使用其中一种 为什么工厂使用静态类?也为工厂定义接口,并在需要的地方通过构造函数传递它们。谢谢,我会这么做的。但我的问题是:从另一家工厂给一家工厂打电话是个好主意吗?这是“正常”吗?谢谢,为什么不呢?这里唯一的反模式是对静态类的强依赖性。