Dependency Inversion Principle
High-level modules should not depend on low-level modules; both should depend on abstractions. Invert the dependency flow.
High-level modules should not depend on low-level modules; both should depend on abstractions. Invert the dependency flow.