philnoug@home:~$

IoC

L’inversion de contrôle (IoC) est, malgré les apparences, une solution simple et élégante au problème d’hyper-spécialisation des classes d’objets, et un remède au casse-tête qu’a pû être l’héritage multiple avant son apparition.

L’idée force est de permettre à une classe non spécialisée de jouer d’autres rôles que le sien sans avoir à implémenter ces rôles en son sein. Cela permet de découpler les classes d’objets afin d’obtenir un couplage le plus faible possible, gage de flexibilité, de facilité de lecture et donc de maintenabilité.

Mais ce principe n’est pas basé sur un mécanisme complexe qu’il faut appliquer aveuglément, sans rien y comprendre. Non. L’IoC est basé sur une convention passée entre les humains et la machine… avec un peu de magie derrière quand même.

Pour faire une analogie un peu simpliste avec le mode réel, c’est un peu comme si on vous donnait accès à une maison pour y passer la nuit en l’absence de son propriétaire juste en convenant avec lui de l’endroit où il va cacher la clé, à savoir dans le deuxième pot de fleurs de la troisième fenêtre à gauche. Ce pot de fleurs va alors agir entre vous comme une interface; c’est là qu’aura lieu l’échange des rôles entre le propriétaire et vous, qui allez pouvoir en prendre possession le temps d’une nuit.