SOLID principles
SOLID is an acronym for five design principles of object-oriented programming, introduced by Robert C. Martin. The five principles are the single responsibility principle, the open-closed principle, the Liskov substitution principle, the interface segregation principle, and dependency inversion.
Dependency injection is the technique most commonly used to put dependency inversion into practice.