1
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();
 .....
 }

}

これは、ファクトリまたは抽象ファクトリがここで使用できる状況です。はいの場合、例を教えてください。

4

1 に答える 1

0

あなたの場合、2 つの異なるインターフェイスを持つ 2 つのクラスがあるため、ここでは Factory は実際には適用されません。抽象ファクトリをオブジェクトとして使用し、オブジェクトの初期化を別の関数に委任する必要があります。

あなたの例のAbstract Factory Interfaceはここに行きます

public Interface IAbstractInterfaceFactory
{

IService1 InitializeService1();
IService2 InitializeService2();

}

通常、ファクトリ パターンは、同じインターフェイスまたは抽象クラスを実装するさまざまなオブジェクトの初期化が多すぎる場合に使用されます。パターンは、Factory メソッドを持つことを提案し、オブジェクトのタイプに基づいて初期化する必要があり、特定のオブジェクトを作成して返します。2 つの方法で役立ちます。 1. すべての初期化コードを 1 か所に保持します。 2. 具象クラスを返さないため、拡張性と管理性が向上します。

詳細については 、抽象ファクトリ パターンとファクトリ メソッドの違い 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

于 2013-02-06T01:24:04.863 に答える