本文主要是介绍C++设计模式——抽象工厂模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include<iostream>
using namespace std;
//产品1
class Product1
{
public:
virtual void show()=0;
};
//产品2
class Product2
{
public:
virtual void show()=0;
};
//微软的产品1
class MicroProduct1 : public Product1
{
public:
void show()
{
cout<<"MicroProduct1\n";
}
};
//微软的产品2
class MicroProduct2 : public Product2
{
public:
void show()
{
cout<<"MicroProduct2\n";
}
};
//联想的产品1
class LenovoProduct1 : public Product1
{
public:
void show()
{
cout<<"LenovoProduct1\n";
}
};
//联想的产品2
class LenovoProduct2 : public Product2
{
public:
void show()
{
cout<<"LenovoProduct2\n";
}
};
//工厂
class Factory
{
public:
virtual Product1 * createProduct1()=0;
virtual Product2 * createProduct2()=0;
};
//微软工厂
class MicroFactory : public Factory
{
Product1 * createProduct1()
{
return new MicroProduct1();
}
Product2 * createProduct2()
{
return new MicroProduct2();
}
};
//联想工厂
class LenovoFactory : public Factory
{
Product1 * createProduct1()
{
return new LenovoProduct1();
}
Product2 * createProduct2()
{
return new LenovoProduct2();
}
};
int main()
{
Factory *micro = new MicroFactory();
Product1 *p1 = micro->createProduct1();
Product2 *p2 = micro->createProduct2();
p1->show();
p2->show();
cout<<endl;
Factory *lenovo = new LenovoFactory();
Product1 *p3 = lenovo->createProduct1();
Product2 *p4 = lenovo->createProduct2();
p3->show();
p4->show();
}
这篇关于C++设计模式——抽象工厂模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!