首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解DIP,DI,IoC理论

理解DIP,DI,IoC理论
EN

Software Engineering用户
提问于 2011-07-20 19:15:50
回答 1查看 1.7K关注 0票数 7

大约两个月来,我一直在阅读这三个主题的所有我能找到的,但我还不确定我是否理解它。

  1. 依赖反演原理这意味着您应该始终只依赖于接口,而不是它们的实现。如果您的类依赖于任何其他类,则这是错误的,因为它取决于第二类的详细信息。如果您的类依赖于接口,这是绝对可以的,因为这种依赖只意味着您的类需要一些抽象的东西,这些抽象的东西可以做一些特定的事情,而您并不真正关心它的实现方式。由于"DIP“中的P代表”原则“,我可能应该这样定义它:依赖反转原则是一个原则,它要求所有代码的实体只依赖于它们真正需要的细节。所谓“他们真正需要的细节”,我指的是最简单的情况下的接口。我还使用了“实体”一词来强调,DIP也适用于程序和其他任何东西,而不仅仅适用于类。
  2. 依赖注入它只适用于启用DI的实体。启用DI的实体是一个“开放”的实体,用于配置其行为而不更改其内部。有两种基本的注入(在谈论类时):
    • 构造函数注入--当您将所有所需的“抽象细节”传递给对象时,此时它即将被构造。
    • Setter注入--在对象已经创建之后,您“澄清”了所需的方面。

因此,定义可能如下所示:依赖注入是将“抽象细节”传递给真正需要这些细节的实体的过程。所谓“真正需要这些细节”,我指的是最简单的情况下的接口。“实体”一词一如既往地被用来强调DI也适用于过程和其他任何东西。

  1. 控制反转它通常被定义为“库和框架之间的区别”,如“用过程编程中的任意方式编写程序”等等。对我来说最令人困惑的事。我认为这里的主要想法是发起任何行动。你要么“随心所欲”地做某事(程序方式),要么“等待”直到有人问你(IoC方式)。我的定义是: IoC是程序执行流的一个属性,当您不做任何事情直到他们要求您去做时。这听起来就像“好莱坞原则”,但我相信“好莱坞原则”和IoC都是完全相同的想法。

我明白了吗?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2011-07-20 19:26:32

如果你看一下你的三个定义,区别是微妙的,但本质上它们的意思是相同的。

它的意义在于通过构造函数中的参数提供类所需的(它的依赖项)。就这样。有许多依赖注入框架试图将这个过程正规化,但它们都是一回事。

依赖注入总是只在需要时提供所需的依赖项。

票数 6
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/94616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档