L'injection de dépendances

Petite vérification
Avant de commencer, vérifiez si vous savez...
- compléter la méthode
getInstance()du pattern Singleton :if (null === self::$instance) { ___ }— écrire l'instruction qui crée l'instance et l'affecte àself::$instance - expliquer pourquoi le constructeur de la classe
GameConfig(pattern Singleton) doit être déclaréprivate - expliquer le rôle du design pattern Factory, illustré par la classe
CharacterFactory
📌 Réponse attendue
Vous devez être connecté pour voir le contenu.
Notions théoriques
L'injection de dépendances est un patron de conception qui permet de rendre nos applications plus modulaires, plus testables et plus maintenables.
Au lieu de créer des objets à l'intérieur d'une classe ou d'une méthode, nous les passons en tant que paramètres (on "injecte" les dépendances).
Dans notre jeu de combat, par exemple, nous pourrions avoir une classe
Gamequi dépend d'une classeFighter. Au lieu de créer un objetFighterà l'intérieur de la classeGame, nous pourrions le passer en paramètre à la méthodestartGame.
Pourquoi utiliser l'injection de dépendances ?
- Cela nous permet de changer les détails de ces objets sans avoir à modifier la classe ou la méthode qui les utilise.
Car elle se base sur le principe de l'inversion de contrôle.
- De plus, cela facilite les tests unitaires, car vous pouvez injecter des fausses données (mocks) pour tester la classe indépendamment de ses dépendances réelles.