相关疑难解决方法(0)

DIP vs. DI与IoC

大概2个月我一直在阅读这三个主题我能找到的所有东西,我还不确定我是否已经找到了.

  1. 依赖倒置原则.意味着你应该始终只依赖于接口而不是它们的实现.如果你的班级依赖于任何其他班级,这是不好的,因为它取决于第二类的细节.如果你的类依赖于接口,这绝对可以,因为这种依赖只意味着你的类需要一些抽象的东西,它可以做一些具体的事情而你并不真正关心它的做法.

    由于"DIP"中的P代表"原理",我应该用这种方式定义:依赖性倒置原则是一个原则,要求所有代码的实体仅依赖于他们真正需要的细节.

    通过"他们真正需要的细节",我指的是最简单的情况下的接口.我还使用"实体"这个词来强调DIP也适用于程序和其他任何东西,不仅适用于类.

  2. 依赖注入.它仅适用于启用DI的实体.启用DI的实体是一个"开放"的实体,用于配置其行为而不更改其内部.注入有两种基本类型(在谈论类时):

    • 构造函数注入 - 当您将所有必需的"抽象细节"传递给对象时,就在它即将构建的那一刻.
    • Setter Injection - 在您创建对象后"澄清"所需方面.

    因此,定义可能如下:依赖注入是将"抽象细节"传递给真正需要这些细节的实体的过程.

    通过"真正需要这些细节",我指的是最简单的情况下的接口."实体"一词一如既往地用来强调DI也适用于程序和其他任何东西.

  3. 控制反转.它通常被定义为"库和框架之间的差异","以程序编程中的任何一种方式编写程序"等等.这对我来说是最令人困惑的事情.我认为这里的主要想法只是启动任何行动.要么"随时随地"(程序方式)做某事,要么"等"直到有人问你(IoC方式).

    我的定义是:IoC是程序执行流程的一个属性,当你不要做任何事情,直到他们要求你这样做.

    这听起来就像"好莱坞原则",但我相信"好莱坞原则"和IoC都是完全相同的想法.

我理解吗?

architecture theory dependency-injection inversion-of-control

16
推荐指数
1
解决办法
6292
查看次数

固态原理示例在哪里?

即使我们没有意识到,我们都会用一些模式编写代码.我试图真正理解一些SOLID原则以及如何在现实世界中应用这些原则.

我正在与" D " 挣扎.

我有时会将依赖性反转依赖注入混淆.这是否意味着只要您根据抽象(IE:接口)保留事物就完成了.

有没有人有一个小的C#示例解释它?

谢谢.

c# design-patterns

14
推荐指数
2
解决办法
5447
查看次数