class AbstractAmplifierIn {};
class AbstractAmplifierOut {};
class Amplifer1_In : public AbstractAmplifierIn {};
class Amplifer2_In : public AbstractAmplifierIn {};
class Amplifer1_Out : public AbstractAmplifierOut {};
class Amplifer2_Out : public AbstractAmplifierOut {};
class AbstractFactory {
public:
virtual AbstractAmplifierIn* create_amplifier_in() = 0;
virtual AbstractAmplifierOut* create_amplifier_out() = 0;
};
class AmplifierFactory1 : public AbstractFactory {
public:
AbstractAmplifierIn* create_amplifier_in() {
return new Amplifer1_In;
}
AbstractAmplifierOut* create_amplifier_out() {
return new Amplifer1_Out;
}
};
class AmplifierFactory2 : public AbstractFactory {
public:
AbstractAmplifierIn* create_amplifier_in() {
return new Amplifer2_In;
}
AbstractAmplifierOut* create_amplifier_out() {
return new Amplifer2_Out;
}
};
AbstractFactory* factory = new AmplifierFactory1; AbstractAmplifierIn* amp_in = factory->create_amplifier_in(); AbstractAmplifierOut* amp_out = factory->create_amplifier_out();
【设计模式攻略】创建型模式之Abstract Factory模式
原文:http://blog.csdn.net/my_business/article/details/19820057