• Make your code rely on an interface/abstract class rather than a concrete class
  • Get your program to rely on a behaviour rather than an implementation!

Often ties in with Dependency Injection, but is not the same thing!