依赖倒置设计原则 实例(组装电脑)
#include "stdafx.h"
#include <iostream>
using namespace std;
class Cpu
{
public:
virtual void run() = 0;
};
class Memory
{
public:
virtual void run() = 0;
};
class HardDisk
{
public:
virtual void run() = 0;
};
class InterCpu :public Cpu
{
public:
virtual void run()
{
cout << "我是intel Cpu 我是8核主频3.0" << endl;
}
};
class AMDCpu :public Cpu
{
public:
virtual void run()
{
cout << "我是AMD Cpu " << endl;
}
};
class KingstonMemory :public Memory
{
public:
virtual void run()
{
cout << "我是金士顿,骇客神条 ddr3 1600 16g " << endl;
}
};
class WDHardDisk :public HardDisk
{
public:
virtual void run()
{
cout << "我是西部数据,我固态,500g" << endl;
}
};
class Computer
{
public:
Computer(Cpu* pc,HardDisk* ph,Memory* pm)
:cpu(pc), disk(ph), mem(pm){}
void work()
{
cpu->run();
disk->run();
mem->run();
}
private:
Cpu* cpu;
HardDisk* disk;
Memory* mem;
};
int _tmain(int argc, _TCHAR* argv[])
{
InterCpu* icpu = new InterCpu;
AMDCpu* acpu = new AMDCpu;
WDHardDisk* disk = new WDHardDisk;
KingstonMemory* mem = new KingstonMemory;
Computer comp(icpu, disk, mem);
comp.work();
delete icpu;
delete acpu;
delete disk;
delete mem;
return 0;
}