日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++基于多态实现依赖颠倒原则附源码

發布時間:2025/3/15 c/c++ 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++基于多态实现依赖颠倒原则附源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

依賴顛倒原則

關于多態的實現原理以及實例見前幾天更新的C++多態一文:
C++多態

使用依賴顛倒原則之后,雖然代碼實現比原來更加復雜了,但是實現了高層業務邏輯層與底層模塊之間的解耦合,更改或者更換底層模塊不在需要改動高層模塊的代碼就可以實現,整個系統的更加的穩定。

傳統的過程式設計傾向于使用高層的模塊依賴低層次的模塊,抽象層依賴于具體層

沒有使用依賴顛倒之前,上層業務邏輯依賴底層業務邏輯

依賴顛倒原則
使用了依賴顛倒之后,上層業務邏輯和底層模塊都依賴于抽象層,代碼復雜了,但是系統易于維護了

依賴顛倒的實現也是基于多態的基礎之上,,具體的Cpp代碼實現如下:

#include <iostream> using namespace std;// 讓computer框架和具體的廠商 進行解耦合 // 1. 定義虛類,主要目的是為了規定后期子類的行為 class HardDisk { public:virtual void work(void) = 0; };class Memory { public:virtual void work(void) = 0; };class Cpu { public:virtual void work(void) = 0; };class Computer { public:Computer(HardDisk *hardDisk, Memory *memory, Cpu *cpu){m_hardDisk = hardDisk;m_memory = memory;m_cpu = cpu;}void work(){m_hardDisk->work();m_memory->work();m_cpu->work();}private:HardDisk *m_hardDisk;Memory *m_memory;Cpu *m_cpu; };class InterCpu : public Cpu { public:void work(void){cout << "inter cpu work status ok." << endl;} };class XSDisk : public HardDisk { public:void work(void){cout << "xs data work status ok." << endl;}};class KingStonMemory : public Memory { public:void work(void){cout << "KingSton memory status is ok." << endl;} };int main(int argc, char const *argv[]) {// 基于多態實現依賴顛倒HardDisk *hardDisk = NULL;Memory *memory = NULL;Cpu *cpu = NULL;hardDisk = new XSDisk;memory = new KingStonMemory;cpu = new InterCpu;Computer *myComputer = new Computer(hardDisk, memory, cpu);myComputer->work();delete myComputer;delete cpu;delete memory;delete hardDisk;cout << "hello world." << endl;return 0; }

執行結果:

xs data work status ok. KingSton memory status is ok. inter cpu work status ok. hello world.

總結

以上是生活随笔為你收集整理的C++基于多态实现依赖颠倒原则附源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。