依赖注入和控制反转

  1. 依赖注入和控制反转

控制反转可以说一种思想, 即把资源的控制权交给第三方来处理, 而依赖注入算是控制反转的一种实现。

依赖注入其实也是一种思想, 只不过更加具体一点。

先说依赖是如何产生的:

程序中存在两个类A & B, A中实现某些功能需要借助(依赖)B的实例去操作。当B类的初始化方式发生变化,比如构造函数增加了一个参数的时候, A中所有实例化B的代码都需要进行改动。 也就是说, 当需求发生变动(B类构造函数增加参数)时, A和B同时需要修改,这就是说A对B产生了强依赖, 或者说强耦合。

解决强依赖的方法就是依赖注入, 一般实现方式是把A中需要实例化B的代码全部去掉,改成由外部传入B实例方式。

详细例子

强依赖


class A {

void read() {

    b = new B(ip,port)

    b.read()

    }

}

A *a = new A()

a.read()

`



依赖注入

```c++

class A {

    B *b = null

    __construct(B *pb) {

            this.b = pb

    }

    void read() {

        this.b.read()

    }

}



B *b = new B(ip, port)

A *a = new A(b)

a. read()

`
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容