Invert Dependencies
Do not depend on concretion but on abstractions. Make both low-level modules and high-level modules depend on common abstractions.
Do not depend on concretion but on abstractions. Make both low-level modules and high-level modules depend on common abstractions.