# D - Dependency Inversion (DIP)

## About

{% hint style="danger" %}
The closest to business rules, the higher the level.
{% endhint %}

High level modules must not depend in low level ones. Both must depend on abstractions and not implementations.

* Separated *(independent)* modules, must not have direct dependencies between them.
* A class must not know the implementation of other classes methods, but know only the interface of that class.

<img src="https://918994881-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCohgIgtQvaflZD82x7YP%2Fuploads%2FAp3LK9NxUdVruR3LCvGI%2Ffile.excalidraw.svg?alt=media&#x26;token=93a9137e-2c1f-4aa4-a601-da47341be943" alt="" class="gitbook-drawing">
