【译】C#中的SOLID之D:依赖反转

这篇文章是关于SOLID设计原则的系列文章的一部分(关于D的部分)。你可以从这里开始进行学习,也可以使用下面的链接跳转到相应的页面:

S – Single Responsibility
O – Open/Closed Principle
L – Liskov Substitution Principle
I – Interface Segregation Principle
D – Dependency Inversion

好吧,让我们先从维基百科的定义开始:

  1. 高级别的模块不能依赖于低级别的模块。两者都应该依赖于抽象(比如说,依赖于接口)。
  2. 抽象不应该依赖于具象。具象(实际的实现)应该依赖于抽象。

这听起来似乎有些复杂,然而当你与这些代码一起工作的时候,你会发现它实际上简单很多。事实上很可能它正是某个你正在做的(特别是在.NET Core里)但并没有仔细考虑的事。

简单点来说,想象我们有一个服务,其对某个“Repository”进行了调用。一般来说,那个“Repository"会有一个接口(特别是在.NET Core中),我们会使用依赖注入来将那个“Repository”注入到我们的服务中,然而,服务仍旧是与接口一起工作,而不是与具体的实现一起工作。

猜你喜欢

转载自www.cnblogs.com/qianxingmu/p/13387824.html