What are some guidelines to keep in mind to not violate the dependency inversion principle? — - No variable should have a concrete class type. An abstract type is better. - No class should derive from a concrete class. - No method should override an implemented method of any of its base classes. These are guidelines and may not be feasible all the time.