设计模式--依赖倒转原则
依赖倒转原则:依赖于抽象类(接口类),不依赖于具体实现类
即:高层业务逻辑依赖抽象类,具体实现类 依赖于抽象业务逻辑
高层逻辑为:软件设计具体需求(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;
}
只要将 多个抽象类 定义好,即不管 哪个 具体的 功能实现模块 只要继承抽象类并重写虚函数实现具体功能,即可以 实现高层逻辑
设计模式--依赖倒转原则相关推荐
- Java设计模式——依赖倒转原则
一.什么是依赖倒转原则? 依赖倒转原则讲的是,要依赖于抽象,不要依赖于具体. 实现"开-闭"原则的关键是抽象化,并且从抽象化导出具体化实现."开-闭"原则是面向 ...
- [设计模式]依赖倒转原则
代码如下: #include <iostream> #include <string>using namespace std;//银行工作人员 class BankWorker ...
- Java设计模式 - 依赖倒转原则
文章目录 1. 违反依赖倒转原则 2. 遵守依赖倒转原则 3. 依赖关系传递的3种方式 3.1 接口传递 3.2 构造方法传递 3.3 setter方法传递 4. 依赖倒转原则的注意事项和细节 Dep ...
- 23种设计模式-依赖倒转原则
概念: 依赖倒转原则(Dependence Inversion Principle)是指: 1) 高层模块不应该依赖低层模块,二者都应该依赖其抽象 2) 抽象不应该依赖细节,细节应该依赖抽象 3) 依 ...
- Java设计模式——依赖倒转原则(实例)
1.基本介绍 高层模块不应该依赖低层模块,二者都应该依赖其抽象 抽象不应该依赖细节,细节应该依赖抽象 依赖倒转的中心思想是面向接口编程 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西 ...
- 设计模式依赖倒转原则
- 依赖倒转原则_Java设计模式的七大原则
Java设计模式的七大原则 里氏代换原则 里氏代换原则是对"开-闭"原则的补充.实现"开-闭"原则的关键步骤就是抽象化.而基类与子类的继承关系就是抽象化的具体实 ...
- Java设计模式之设计的6大原则(开闭原则,里氏代换原则,依赖倒转原则,接口隔离原则,最少知道原则,合成复用原则)
1. 开闭原则 核心思想:一个对象对外扩展开发,对修改关闭 意思就是:对类的改动是通过增加代码进行的,而不是修改现有的代码. 也就是说软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证 ...
- 【设计模式】依赖倒转原则
依赖倒转原则 依赖倒转原则是指的特点有∶ 高层模块不应该依赖低层模块,二者都应该依赖其抽象 抽象不应该依赖细节,细节应该依赖抽象 依赖倒转(倒置)的 中心思想 是面向接口编程 依赖倒转原则是基于这样的 ...
最新文章
- aide java 线程类_aide_Java常用关键字、方法使用实例
- http压力测试工具
- android p wifi一直在扫描_(一百六十八)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理②...
- 【搜索引擎】lucene事务
- 工作两年多的一个菜鸟感想
- (8)FPGA时钟设计(第2天)
- linux加入微软,微软正式加入Linux基金会
- Go学习笔记(只有链接)
- struts2登录注册示例_Struts 2文件上传示例
- (转载)python-hwdata
- JavaScript 的等式对照表
- python2.7.7笔记if in
- nodejs redis 发布订阅_Redis 发布订阅,小功能大用处,真没那么废材
- C/C++[codeup 2066]分组统计
- .Net .Net Core 下使用FastDFS 文件上传下载
- LabVIEW哪些软件需要运行时许可
- 什么是知识库管理系统?如何搭建企业知识库系统?
- 扒一扒那些叫欧拉的定理们(九)——群论观点下的欧拉公式初步
- 斐讯N1盒子刷Armbian安装jdk做Java服务器
- 鱼和熊掌兼得!这些应用是如何使用 Material Design 的?
热门文章
- KeyShot 11 Pro for Mac(3D渲染和动画制作) V11.3.2.2中文安装+更新内容
- 基于微信小程序的社区垃圾回收管理系统小程序
- js判断Lodop驱动是否安装
- 2038年问题 linux内核5.6,Linux Kernel 5.6 开发者已率先做好准备 应对 2038 年问题
- python一天学费多少_自学python一天的小项目实战
- 安卓3dtouch测试软件,不必羡慕iPhone!安卓手机可以这样实现“3D Touch”
- 战双帕弥什qq登录服务器未响应是什么意思,战双帕弥什qq登录
- python二手交易系统毕业设计开题报告
- TOGAF®10标准读书会首场活动圆满举办,精彩时刻回顾!
- 安徽大学计算机科学与技术学院张磊,吕钊(安徽大学计算机科学与技术学院副教授)_百度百科...