工厂模式
作者:
贺谦
,
2021-01-11 14:42:40
,
阅读 48
#include <iostream>
using namespace std;
enum CpuType
{
A, B
};
class CPU
{
public:
virtual void work() = 0;
};
class CpuA : public CPU
{
public:
virtual void work()
{
cout << "CpuA work()" << endl;
}
};
class CpuB : public CPU
{
public:
virtual void work()
{
cout << "CpuB work()" << endl;
}
};
class Facty
{
public:
CPU* createCpu(enum CpuType type)
{
if (type == A) return new CpuA();
else if (type == B) return new CpuB();
}
};
int main()
{
Facty fty;
CPU* pcpu = fty.createCpu(A);
pcpu->work();
pcpu = fty.createCpu(B);
pcpu->work();
return 0;
}
#include <iostream>
using namespace std;
class Cpu
{
public:
virtual void work() = 0;
};
class CpuA : public Cpu
{
public:
void work()
{
cout << "CpuA work()" << endl;
}
};
class CpuB : public Cpu
{
public:
void work()
{
cout << "CpuB work()" << endl;
}
};
class Facty
{
public:
virtual Cpu* createCpu() = 0;
};
class FactyA : public Facty
{
public:
Cpu* createCpu()
{
return new CpuA;
}
};
class FactyB : public Facty
{
public:
Cpu* createCpu()
{
return new CpuB;
}
};
int main()
{
FactyA ftya;
Cpu* pcpu = ftya.createCpu();
pcpu->work();
FactyB ftyb;
pcpu = ftyb.createCpu();
pcpu->work();
return 0;
}