C++设计模式之依赖倒置原则

依赖倒置原则

依赖于抽象接口,不要依赖具体的实现(类),也就是针对接口编程。

#include<iostream>
using namespace std;

class HardDisk
{
public:
    virtual void work()=0;
};

class Memory
{
public:
    virtual void work()=0;
protected:
private:
};

class Cpu
{
public:
    virtual void work()=0;
protected:
private:
};

class Computer
{
public:
    Computer(HardDisk* harddisk,Memory* memory,Cpu* cpu)
    {
        M_hardDisk=harddisk;
        M_Memory=memory;
        M_Cpu=cpu;
    }
public:
    void work()
    {
        M_hardDisk->work();
        M_Memory->work();
        M_Cpu->work();
    }
protected:
private:
    HardDisk *M_hardDisk;
    Memory *M_Memory;
    Cpu *M_Cpu;
};

class InterCPU:public Cpu
{
public:
    void work()
    {
        cout<<"InterCPU 工作良好"<<endl;
    }
protected:
private:
};

class XSDisk:public HardDisk
{
public:
    void work()
    {
        cout<<"XSDisk工作良好"<<endl;
    }
protected:
private:
};

class JSDMemory:public Memory
{
public:
    void work()
    {
        cout<<"JSDMemory工作良好"<<endl;
    }
};

void main()
{
    HardDisk *harddisk = NULL;
    Memory *memory = NULL;
    Cpu *cpu = NULL;
    harddisk = new XSDisk;
    memory = new JSDMemory;
    cpu = new InterCPU;
    Computer *MyComputer = new Computer(harddisk,memory,cpu);
    MyComputer->work();
    delete harddisk;
    delete memory;
    delete cpu;
    delete MyComputer;
    system("pause");
}

电脑是高层业务逻辑,中间是抽象层(包括硬盘,CPU,内存),具体的产品分别是硬盘,CPU,内存是实现层。高层业务逻辑和具体产品(实现层)之间接耦合。其中类computer就是抽象接口。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u014571489/article/details/81265762