前言
所谓简单工厂,工厂,抽象工厂。当我一开始看到并学习这个这三个概念的时候就感觉这三个感念很相似,有点混乱,事实证明,确实让我变得很混乱。即使当初学的时候勉强看懂,但是事后便抛诸脑后,统统忘记到九霄云外了。
因此当我回过头从新理解概念时,总结了以下心得,加深理解,并且做一个备忘录。
工厂类模式设计的核心是:让“生产”和“产品”解耦。
简单工厂
所谓的简单工厂,我的理解是不用管是什么产品,我们将所有产品的生产线一股脑的都放在一个工厂里,这样工厂便可以根据用户的要求来生产各种产品。
代码如下:
int prodNo;
public SimpleFactory(int prodNo) //构造工厂时告知工厂产品标识
{
this.prodNo = prodNo;
}
public IProduct GetProduct()
{
switch (prodNo) //根据产品标识生产产品
{
default:
return new ProductA();
case 1:
return new ProductA();
case 2:
return new ProductB();
}
}
}
//产品A
class ProductA: IProduct
{
//产品属性
//......
}
//产品B
class ProductB : IProduct
{
//产品属性
//......
}
//产品接口
interface IP