Как правильно реализовать принцип внедрения зависимостей из SOLID?

SOLIDвнедрение зависимостейООПпаттерныпроектирование