依赖注入 和 new 一个实例有什么区别吗?

勇哥注:

这是知乎里一个人的困惑,答者回复非常好,特摘抄如下。


问题:
今天刚看了一下 依赖注入 的概念,大致就是说如果一个服务类 A 需要另外一个服务类 B 中的方法,
那就直接将这个 B 这个类注入到 A 这个类中,但是我一想,这不就是在 A 类中 new 一个 B 类吗??
或者可以直接在 A 类的构造器中 new 一个 B 类,然后 A 类中的所有方法都可以使用这个属性。
依赖注入和这个有啥区别吗??


回复:

依赖注入和new一个实例的区别在于控制反转的思想。

在使用new一个实例的方式时,需要显式地创建和管理实例,并且需要自己定义和管理对象之间的关系。

这样会导致代码耦合度高,维护和测试成本也会很高。

而依赖注入则是一种控制反转的思想,它将对象的创建和管理交给了一个容器或者框架,

容器或框架负责创建和管理对象,并且自动注入对象之间的依赖关系,从而减少代码的耦合度,

提高代码的可维护性和可测试性。

通过依赖注入,程序员只需要定义对象的接口和依赖关系,而不需要显式地创建和管理对象。

容器或框架会负责实例化对象,并将依赖的对象注入到对象中,从而实现对象之间的解耦。

依赖注入可以提高代码的可维护性和可测试性,降低代码的耦合度,而new一个实例的方式则需要自己定义和管理对象之间的关系,

代码的可维护性和可测试性会变差。

本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2023-11-01 08:01:36 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864