Skip to content

Latest commit

 

History

History
10 lines (6 loc) · 696 Bytes

File metadata and controls

10 lines (6 loc) · 696 Bytes

Dependency Inversion

Dependency inversion principle is a specific form of loosely coupling software modules.

The general idea of this principle is as simple as it is important: High-level modules, which provide complex logic, should be easily reusable and unaffected by changes in low-level modules, which provide utility features. To achieve that, you need to introduce an abstraction that decouples the high-level and low-level modules from each other.

Dependency Inversion Principle consists of two parts:

  • High-level modules should not depend on low-level modules. Both should depend on abstractions.
  • Abstractions should not depend on details. Details should depend on abstractions.