L'un des principes qui facilite le développement dans la programmation orientée objet st le codage aux interfaces. Grâce à lui, à un moment opportun, on peut librement modifier l'implémentation d'une interface, par exemple en remplaçant HashMap par TreeMap dans la déclaration Map<String, String> map = new TreeMap|HashMap<String, String>
Ce principe s'inscrit parfaitement au fonctionnement de l'injection des dépendances. Le développeur ne se soucie pas l'implémentation de quelle classe est utilisée. Cette tâche est transférée du côté de l'IoC.
Ce transfert est la principale raison pour laquelle la programmation par interfaces est vivement conseillé. Cependant, il faut faire attention à l'implémentation du sujet de cet article. En fait, programmation par interfaces doit être une approche plus pragmatique qui ne viole pas le principe de KISS (Keep it Simple, Stupid). Autrement dit, souvent le rajout d'interface à chaque classe n'est pas forcément très utile.