图解依赖注入由来及分类

本文探讨了软件设计中的耦合度概念,强调高内聚低耦合的重要性。通过UML图示例展示了强耦合关系的问题,并指出这与依赖倒置原则相悖。依赖倒置原则要求高层模块依赖于抽象,而具体实现应依赖于抽象。文章解释了这一原则的含义,指出抽象不应直接依赖具体类。接着,引入依赖注入的概念,作为解决具体类依赖问题的方法,依赖注入包括构造函数注入、属性注入和接口注入。通过这些方式,可以实现依赖关系的解耦,提高代码的灵活性和可维护性。
摘要由CSDN通过智能技术生成

①、什么是耦合度/耦合性?

模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

示例展示:

上图中的Top类与Underly类就属于强耦合关系,即当Underly类中的构造函数变更之后,如:更改为带参数的构造函数,Top类中的代码也需要跟着改变。

②、上图中的UML图与我们哪个设计模式相悖?

依赖倒置原则:高层模块(Top)不应该依赖于低层模块(Underly),他们都应该依赖于抽象(IUnderly)。

那上面的这个UML图要如何优化呢?

我们要让Top类面向接口,Underly类实现接口。这样便做到了他们都依赖于抽象。

③、依赖倒置原则中的:抽象不应该依赖于具体,如何理解?

如果换成另一种解释我们可能会好理解一些:抽象类或接口中最好不要有具体类的出现,即使是返回值类型也最好是抽象类。

如下图中红色字体标识的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elsa~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值