开发喵星球

C++依赖倒转

依赖倒转原则是面向对象设计原则之一,它指的是高层模块不应该依赖于低层模块,两者都应该依赖于抽象。

以下是一个简单的C++例子来演示依赖倒转原则:

cppCopy code
#include <iostream>
#include <vector>

// 抽象基类,定义接口
class Writer {
public:
    virtual void write(std::string message) = 0;
};

// 高层模块
class Notifier {
public:
    void notify(Writer& writer, std::string message) {
        writer.write(message);
    }
};

// 低层模块1
class ConsoleWriter : public Writer {
public:
    void write(std::string message) override {
        std::cout << "Console: " << message << std::endl;
    }
};

// 低层模块2
class FileWriter : public Writer {
public:
    void write(std::string message) override {
        // 写入到文件(假设)
        std::cout << "File: " << message << std::endl;
    }
};

int main() {
    Notifier notifier;
    ConsoleWriter consoleWriter;
    FileWriter fileWriter;

    notifier.notify(consoleWriter, "Hello, World!");
    notifier.notify(fileWriter, "Hello, World!");

    return 0;
}

在这个例子中,Notifier 是一个高层模块,它不直接依赖于低层的 ConsoleWriterFileWriter。而是依赖于一个抽象接口 Writer,这样就实现了依赖倒转。

   
分类:C/C++ 作者:开发喵 发表于:2023-09-13 08:21:50 阅读量:96
  >>


powered by kaifamiao