用于创建对象的工厂模式

时间:2013-02-06 01:00:14

标签: design-patterns

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工厂的情况。如果是的话,请你提供一个例子。

1 个答案:

答案 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