Program to an interface; not an Implementation (GOF 18)
“Program to an interface; not an implementation” is a great design principle. The relevant question then becomes: why is programming to an interface desirable?
One reason is that interfaces are less volatile and simple when compared to concrete implementations.
See Also:
Dependency Inversion Principle (DIP) (very similar concept)
28 March 2025