依赖注入--解耦设计模式

依赖注入

介绍

依赖注入(Dependency Injection)是一种软件设计模式,用于实现对象之间的解耦和提高代码的可测试性、可维护性。
在依赖注入中,一个对象所依赖的其他对象(通常称为依赖)不是由该对象自己创建或获取,而是通过外部将这些依赖提供给它。

使用

1.实现方法
简单来说,就是创建一个对象,然后把这个当做实参传入到另一个类的构造函数也好、普通函数也好,只要能传进入就行。
然后待注入的类里面声明一个注入类的对象。
2.实现

#include <iostream>
class B {
public:
    int value;
    void doSomething() {
        std::cout << "B is doing something with value: " << value << std::endl;
    }
};
class A {
private:
    B* b;
public:
    // 构造函数注入
    A(B* b) {
        this->b = b;
    }
    void performTask() {
        b->doSomething();
    }
    ~A() {
        // 这里不需要释放 B 的内存,因为 B 的所有权不在 A 中
    }
};
int main() {
    B b;  // 直接创建 B 对象,不涉及动态内存分配
    b.value = 42;
    A a(&b);  // 将 B 对象的地址注入到 A 中
    a.performTask();
    return 0;
}

这种方法是用引用的方式,不涉及new内存,如果在main里面创建的b是指针的话也是可以的,不过需要delete这个指针。
当然,除了这种构造函数注入之外,还可以使用普通函数进行注入。
需要注意这里:在A类里面创建了一个:B* b;这个是声明而不是定义,因为没有分配内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值