The following guidelines can help you aviod OO design that violate the Dependency Inversion Principle:
No variable should hold a reference to a concrete class
No class should derive from a concrete class
No method should override an implemented method of any of its base classes