设计模式观后(c++还原之六 虚拟工厂)

//抽象工厂模式
//首先抽象工厂是工厂的扩展,书中对他的解释是当工厂出现俩个互相影响的产品线
//示例;
//作者将黄种人派生男人女人(黑种人,白种人一样)
//八卦炉基类(工厂类),生产三种人。再派生俩个类,让其生产男人女人。最后场景类调用。
//关系就像车的左右门一样

class AbstractProductA {
public:
	virtual void ShareMethod() {
		cout << "method";
	}
	virtual void DoSomething() {
		cout << "do";
	}
};
class ProductA1 : public AbstractProductA {
public:
	virtual void DoSomething() {
		cout << "do product1";
	}
};
class ProductA2 : public AbstractProductA {
public:
	virtual void DoSomething() {
		cout << "do product2";
	}
};

//当然AbstractProductB 像A那样,同理构造。
class AbstractProductCreat {
public:
	virtual AbstractProductA* CreateProductA() {}
	virtual AbstractProductB* CreateProductB() {}
};
class Creator1 : public AbstractProductCreat {
public:
	virtual AbstractProductA* CreateProductA() {
		return new ProductA1;
	}
	virtual AbstractProductB* CreateProductB() {
		return new ProductB1;
	}
};
//再实现产品等级二的实现类
//工厂调用

你可能感兴趣的:(生活)