•C++
implementation
class AbstractFactory {
public:
virtual CreateProductA()=0;
virtual CreateProductB()=0;
};
class Factory1: public AbstractFactory
{
public:
CreateProductA() {…}
CreateProductB() {…}
};
class Factory2: public AbstractFactory
{
public:
CreateProductA() {…}
CreateProductB() {…}
};
class AbstractA{};
class ProductA1: public
AbstractA{};
class ProductA2: public
AbstractA{};
class AbstractB{};
class ProductB1: public
AbstractB{};
class ProductB2: public AbstractB{};