public class ConcreteService1: IService1
{
private IService2 _service2;
public void doSomething()
{
_service2 = new ConcreteService2();
.....
}
}
public class ConcreateService2: IService2
{
private IService1 _service1;
public void doSomething()
{
_service1 = new ConcreteService1();
.....
}
}
这是可以在这里使用Factory或Abstract工厂的情况。如果是的话,请你提供一个例子。
答案 0 :(得分:0)
在您的情况下,由于您有两个具有两个不同接口的类,因此Factory实际上不适用于此处。你应该使用抽象工厂作为 它是一个对象,它将对象初始化委托给它独立的函数。
您的示例的抽象工厂接口就在这里
public Interface IAbstractInterfaceFactory
{
IService1 InitializeService1();
IService2 InitializeService2();
}
当您有太多不同的对象初始化实现相同的接口或抽象类时,通常使用工厂模式。该模式建议使用Factory方法,并根据需要初始化的对象类型创建特定对象并将其返回。 它有两个方面的帮助 1.将所有初始化代码保存在一个地方 它永远不会返回使其更具可扩展性和可管理性的具体类
有关详细信息,请参阅此链接 Differences between Abstract Factory Pattern and Factory Method http://en.wikipedia.org/wiki/Abstract_factory_pattern http://www.codeproject.com/Articles/68670/The-Factory-Pattern http://en.wikipedia.org/wiki/Factory_method_pattern