我的理解是将简单工厂模式里面的工厂类,通过抽象分开来
抽象产品
namespace DesignPattern.设计模式._2.工厂模式
{
abstract class ProductBase
{
}
}
实际产品
namespace DesignPattern.设计模式._2.工厂模式
{
class ProductA : ProductBase
{
}
}
namespace DesignPattern.设计模式._2.工厂模式
{
class ProductB : ProductBase
{
}
}
抽象工厂
namespace DesignPattern.设计模式._2.工厂模式.工厂模式
{
abstract class FactoryBase
{
public abstract ProductBase GetProduct();
}
}
实际工厂
namespace DesignPattern.设计模式._2.工厂模式.工厂模式
{
class AFactory : FactoryBase
{
public override ProductBase GetProduct()
{
return new ProductA();
}
}
}
namespace DesignPattern.设计模式._2.工厂模式.工厂模式
{
class BFactory : FactoryBase
{
public override ProductBase GetProduct()
{
return new ProductB();
}
}
}
这里的工厂模式,AFactory和BFactory只能实例化出来一种产品