Principe d’Hollywood

Définition, exemples et bonnes pratiques

À retenir

  • Le framework dirige la danse, pas votre code.
  • C'est le fondement de l'Inversion de Contrôle (IoC).
  • Cela permet de créer des logiciels plus modulaires et plus faciles à tester.

Le principe d’Hollywood est une règle de conception logicielle qui délègue le contrôle du programme à une structure supérieure (un framework). Au lieu que votre code décide quand appeler une fonctionnalité, c'est le système global qui décide du moment opportun pour exécuter votre morceau de code, un peu comme un chef d'orchestre qui fait signe à un musicien de jouer sa partition au bon moment.

Étymologie

Cette expression vient du monde du cinéma et des auditions à Hollywood. Lorsqu'un acteur termine un casting, on lui dit souvent : « Ne nous appelez pas, c'est nous qui vous appellerons ». En informatique, cela illustre l'idée que le composant de bas niveau (l'acteur) attend que le composant de haut niveau (le studio) le sollicite.

Exemples d'usage

  • Les interfaces graphiques : Vous définissez une fonction pour un clic sur un bouton, mais c'est le système d'exploitation ou le navigateur qui l'exécute quand l'utilisateur clique réellement.
  • L'injection de dépendances : Dans des frameworks comme Spring ou Angular, vous déclarez avoir besoin d'un service, et le framework vous le fournit automatiquement au démarrage sans que vous l'instanciiez manuellement.
  • Les Hooks React : Vous écrivez une logique dans useEffect, et React décide seul du moment où il doit déclencher ce code en fonction du cycle de vie du composant.

Cas d'usage

Ce concept est omniprésent dans le développement moderne, particulièrement lors de l'utilisation de frameworks (Web, Mobile, Desktop). Il permet de séparer la logique métier (ce que fait votre application) de la logique d'exécution (comment et quand le programme tourne).

Bonnes pratiques

Pour bien utiliser ce principe, il faut veiller à ce que les fonctions que vous donnez au framework soient courtes et indépendantes. Évitez de créer des dépendances complexes à l'intérieur de ces fonctions, car vous ne maîtrisez pas l'instant exact de leur exécution.

Synonymes

inversion de contrôle IoC inversion of control

Antonymes

programmation impérative directe contrôle explicite

Conseil

Si vous débutez, ne voyez pas cela comme une perte de liberté. En laissant le framework gérer les aspects répétitifs (réseau, clics, cycle de vie), vous pouvez vous concentrer uniquement sur les fonctionnalités uniques de votre projet.

Questions fréquentes

Quelle est la différence avec une bibliothèque classique ?

Dans une bibliothèque, vous appelez ses fonctions pour faire une tâche. Avec le principe d'Hollywood (framework), c'est le framework qui appelle votre code.

Est-ce la même chose que l'Inversion de Contrôle ?

Oui, le principe d'Hollywood est simplement un nom plus imagé et mémorisable pour désigner l'Inversion de Contrôle (IoC).