【发布时间】:2015-05-20 08:18:57
【问题描述】:
目前我在实例化 AbstractFactory 时遇到了麻烦。有一些类:
abstract class ABase { }
class A1 : ABase { }
class A2 : ABase { }
abstract class BBase { }
class B1 : BBase
{
private readonly A1 _a;
public B1(A1 a)
{
_a = a;
}
}
class B2 : BBase
{
private readonly A2 _a;
public B2(A2 a)
{
_a = a;
}
}
abstract class FactoryBBase
{
abstract public BBase Create(ABase b);
}
class FactoryB1 : FactoryBBase
{
override public BBase Create(ABase b)
{
return new B1(b as A1);
}
}
class FactoryB2 : FactoryBBase
{
override public BBase Create(ABase b)
{
return new B2(b as A2);
}
}
class Runtime
{
public void ProcessA(ABase a)
{
//How should I choose a proper factory?
}
}
如何根据a 的类型在ProcessA 方法中实例化适当的抽象工厂?问题是我不想有一个大的 if/else 块。
【问题讨论】:
标签: c# architecture abstract-factory