依赖倒转原则:依赖于抽象类(接口类),不依赖于具体实现类
即:高层业务逻辑依赖抽象类,具体实现类 依赖于抽象业务逻辑
高层逻辑为:软件设计具体需求(eg:制造一台电脑)
抽象层为:很多抽象类(eg:电脑由CPU,显卡,硬盘,内存条等组成,此部分为抽象类)
具体实现类:实现高层逻辑的业务类(eg:具体的CPU,,显卡,硬盘,内存条等)

#include<iostream>
using namespace std;
//抽象类
class Cpu
{public:virtual void doSomeThing() = 0;
};
class Memory
{public:virtual void doSomeThing() = 0;
};
class HardDisk
{public:virtual void doSomeThing() = 0;
};
class ShowCard
{public:virtual void doSomeThing() = 0;
};
//具体实现类
class InterCpu : public Cpu
{public:void doSomeThing(){cout << "我是inter制造的14nmCPU" << endl;}
};
class SeagateHardDisk :public HardDisk
{public:void doSomeThing(){cout << "我是希捷制造的1T硬盘" << endl;}};class KingstonMemory :public Memory
{public:void doSomeThing(){cout << "我是金士顿制造DDR4_16G运存" << endl;}};class GTX960ShowCard :public ShowCard
{void doSomeThing(){cout << "我是GTX960显卡" << endl;}
};//高层业务逻辑
class computer
{public:computer(Cpu *cpu, Memory *mem, HardDisk *hd, ShowCard *sc){this->_cpu = cpu;this->_mem = mem;this->_hd = hd;this->_sc = sc;}void work(){this->_cpu->doSomeThing();this->_mem->doSomeThing();this->_hd->doSomeThing();this->_sc->doSomeThing();}private:Cpu *_cpu = NULL;Memory *_mem = NULL;HardDisk *_hd = NULL;ShowCard *_sc = NULL;
};int main()
{Cpu *cpu1 = new InterCpu;Memory *mem1 = new KingstonMemory;HardDisk *hd1 = new SeagateHardDisk;ShowCard *sc1 = new GTX960ShowCard;computer * com = new computer(cpu1, mem1, hd1, sc1);com->work();return 0;
}

只要将 多个抽象类 定义好,即不管 哪个 具体的 功能实现模块 只要继承抽象类并重写虚函数实现具体功能,即可以 实现高层逻辑

设计模式--依赖倒转原则相关推荐

  1. Java设计模式——依赖倒转原则

    一.什么是依赖倒转原则? 依赖倒转原则讲的是,要依赖于抽象,不要依赖于具体. 实现"开-闭"原则的关键是抽象化,并且从抽象化导出具体化实现."开-闭"原则是面向 ...

  2. [设计模式]依赖倒转原则

    代码如下: #include <iostream> #include <string>using namespace std;//银行工作人员 class BankWorker ...

  3. Java设计模式 - 依赖倒转原则

    文章目录 1. 违反依赖倒转原则 2. 遵守依赖倒转原则 3. 依赖关系传递的3种方式 3.1 接口传递 3.2 构造方法传递 3.3 setter方法传递 4. 依赖倒转原则的注意事项和细节 Dep ...

  4. 23种设计模式-依赖倒转原则

    概念: 依赖倒转原则(Dependence Inversion Principle)是指: 1) 高层模块不应该依赖低层模块,二者都应该依赖其抽象 2) 抽象不应该依赖细节,细节应该依赖抽象 3) 依 ...

  5. Java设计模式——依赖倒转原则(实例)

    1.基本介绍 高层模块不应该依赖低层模块,二者都应该依赖其抽象 抽象不应该依赖细节,细节应该依赖抽象 依赖倒转的中心思想是面向接口编程 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西 ...

  6. 设计模式依赖倒转原则

  7. 依赖倒转原则_Java设计模式的七大原则

    Java设计模式的七大原则 里氏代换原则 里氏代换原则是对"开-闭"原则的补充.实现"开-闭"原则的关键步骤就是抽象化.而基类与子类的继承关系就是抽象化的具体实 ...

  8. Java设计模式之设计的6大原则(开闭原则,里氏代换原则,依赖倒转原则,接口隔离原则,最少知道原则,合成复用原则)

    1. 开闭原则 核心思想:一个对象对外扩展开发,对修改关闭 意思就是:对类的改动是通过增加代码进行的,而不是修改现有的代码. 也就是说软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证 ...

  9. 【设计模式】依赖倒转原则

    依赖倒转原则 依赖倒转原则是指的特点有∶ 高层模块不应该依赖低层模块,二者都应该依赖其抽象 抽象不应该依赖细节,细节应该依赖抽象 依赖倒转(倒置)的 中心思想 是面向接口编程 依赖倒转原则是基于这样的 ...

最新文章

  1. aide java 线程类_aide_Java常用关键字、方法使用实例
  2. http压力测试工具
  3. android p wifi一直在扫描_(一百六十八)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理②...
  4. 【搜索引擎】lucene事务
  5. 工作两年多的一个菜鸟感想
  6. (8)FPGA时钟设计(第2天)
  7. linux加入微软,微软正式加入Linux基金会
  8. Go学习笔记(只有链接)
  9. struts2登录注册示例_Struts 2文件上传示例
  10. (转载)python-hwdata
  11. JavaScript 的等式对照表
  12. python2.7.7笔记if in
  13. nodejs redis 发布订阅_Redis 发布订阅,小功能大用处,真没那么废材
  14. C/C++[codeup 2066]分组统计
  15. .Net .Net Core 下使用FastDFS 文件上传下载
  16. LabVIEW哪些软件需要运行时许可
  17. 什么是知识库管理系统?如何搭建企业知识库系统?
  18. 扒一扒那些叫欧拉的定理们(九)——群论观点下的欧拉公式初步
  19. 斐讯N1盒子刷Armbian安装jdk做Java服务器
  20. 鱼和熊掌兼得!这些应用是如何使用 Material Design 的?

热门文章

  1. KeyShot 11 Pro for Mac(3D渲染和动画制作) V11.3.2.2中文安装+更新内容
  2. 基于微信小程序的社区垃圾回收管理系统小程序
  3. js判断Lodop驱动是否安装
  4. 2038年问题 linux内核5.6,Linux Kernel 5.6 开发者已率先做好准备 应对 2038 年问题
  5. python一天学费多少_自学python一天的小项目实战
  6. 安卓3dtouch测试软件,不必羡慕iPhone!安卓手机可以这样实现“3D Touch”
  7. 战双帕弥什qq登录服务器未响应是什么意思,战双帕弥什qq登录
  8. python二手交易系统毕业设计开题报告
  9. TOGAF®10标准读书会首场活动圆满举办,精彩时刻回顾!
  10. 安徽大学计算机科学与技术学院张磊,吕钊(安徽大学计算机科学与技术学院副教授)_百度百科...