2025年图解依赖注入由来及分类

图解依赖注入由来及分类什么是耦合度 耦合性 模块间的耦合度是指模块之间的依赖关系 包括控制关系 调用关系 数据传递关系 模块间联系越多 其耦合性越强 同时表明其独立性越差 降低耦合性 可以提高其独立性 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准 划分模块的一个准则就是高内聚低耦合 示例展示

大家好,我是讯享网,很高兴认识大家。

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

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

示例展示:


讯享网

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

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

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

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

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

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

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

如下图中红色字体标识的,CreateWriterInstance( )方法是创建一个Writer具体类实例,在接口中我们最好采用抽象,即让返回值类型是IWriter接口,而非Writer具体类。

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

具体类中如果要依赖其他类,最好是依赖抽象。但在我们第二张图中我们遗留一个悬念:虽然Top类看似是依赖于IUnderly接口了,但在Top类的代码中依旧出现了具体类的实例化。这样就违背了“具体应该依赖于抽象”,Top类还是依赖了Underly类的构造函数,那要如何解决呢?

依赖注入闪亮登场!

⑤、依赖注入要如何理解?依赖是什么?注入的又是什么?

以我们上图中的Top类和Underly类来进行分析,针对Top类来讲它依赖Underly类,注入就是将Underly类注入到Top类中。

⑥、如何注入呢?

依赖注入分为三种注入方式:构造函数注入,属性注入,接口注入

构造函数注入:

属性注入:

接口注入:

汇总:依赖注入就是将Top类依赖的Underly对象,通过Top的构造函数进行参数注入、通过Top的属性注入、通过Top实现的IQuote方法注入。

      

小讯
上一篇 2025-03-04 15:28
下一篇 2025-01-16 18:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/35957.html