Search code examples
oopdesign-principlesprinciplesdependency-inversion

What does "dependency inversion principle" mean in OOP?


What is meant by the "dependency inversion principle" in object-oriented programming? What does it do?


Solution

  • In object-oriented programming,
    the dependency inversion principle refers to a specific form of decoupling where conventional dependency relationships established from high-level, policy-setting modules to low-level, dependency modules are inverted (e.g. reversed) for the purpose of rendering high-level modules independent of the low-level module implementation details.

    The principle states:

    A. High-level modules should not depend on low-level modules. Both should depend on abstractions.

    B. Abstractions should not depend upon details. Details should depend upon abstractions.

    Source