//抽象工厂模式,提供一个创建一系列相关或者相互依赖对象的接口,二无需制定他们
//具体的;类
#include<iostream>
using namespace std;
class List_7
{
public:
virtual void product() {};
virtual void sell() {};
};
class VIVO_7 :public List_7
{
public:
void product()
{
cout << "生产一部vivo x7" << endl;
}
void sell()
{
cout << "售出一部vivo X7" << endl;
}
};
class APPLE_7:public List_7
{
public:
void product()
{
cout << "生产一部iPhone7" << endl;
}
void sell()
{
cout << "售出一部iPhone7" << endl;
}
};
class List_PLUS7
{
public:
virtual void product() {};
virtual void sell() {};
};
class VIVO_PLUS7 :public List_PLUS7
{
public:
void product()
{
cout << "生产一部vivoplus x7" << endl;
}
void sell()
{
cout << "售出一部vivo x7 plus" << endl;
}
};
class APPLE_PLUS7 :public List_PLUS7
{
void product()
{
cout << "生产一部iphone 7plus" << endl;
}
void sell()
{
cout << "售出一部iphone 7plus" << endl;
}
};
class IFactory
{
public:
virtual List_7* createList7() { return 0; }
virtual List_PLUS7* createList7plus() { return 0; }
};
class VIVO_Factory :public IFactory
{
public:
List_7* createList7()
{
return (new VIVO_7);
}
List_PLUS7* createList7plus()
{
return (new VIVO_PLUS7);
}
};
class APPLE_Factory :public IFactory
{
public:
List_7* createList7()
{
return (new APPLE_7);
}
List_PLUS7* createList7plus()
{
return (new APPLE_PLUS7);
}
};
int main()
{
IFactory* factory = new VIVO_Factory;
List_7* vivox7 = factory->createList7();
vivox7->product();
vivox7->sell();
cout << endl;
List_PLUS7* vivox7plus = factory->createList7plus();
vivox7plus->product();
vivox7plus->sell();
cout << endl;
IFactory* apple_factory = new APPLE_Factory;
List_7* APPLE7 = apple_factory->createList7();
APPLE7->product();
APPLE7->sell();
cout << endl;
List_PLUS7* APPLE7PLUS = apple_factory->createList7plus();
APPLE7PLUS->product();
APPLE7PLUS->sell();
system("pause");
return 0;
}
运行结果为:
生产一部vivo x7
售出一部vivo X7
生产一部vivoplus x7
售出一部vivo x7 plus
生产一部iPhone7
售出一部iPhone7
生产一部iphone 7plus
售出一部iphone 7plus
请按任意键继续. . .
很简单,没有什么可说的