C++ DIP (Dependency Inversion Principle) ?