Search code examples
modulelanguage-agnosticdependenciesinversion-of-controldependency-inversion

What are "High-level modules" and "low-level modules" (in the context of Dependency inversion principle)?


I was reading Wikipedia's definition of Dependency inversion principle, and it uses two terms High-level modules and low-level modules, which I wasn't able to figure out.

What are they and what does Dependency inversion principle have to do with them?


Solution

  • The definition of those are given in the introductory sentence:

    high level: policy setting
    low level: dependency modules.

    In laymen's terms: high level modules depend on low level modules, but shouldn't depend on their implementation. This can be achieved by using interfaces, thus decoupling the definition of the service from the implementation.