Je cherche à utiliser autant que possible l'injection de dépendance, mais j'ai du mal quand il s'agit de dépendances de courte durée.
Par exemple, disons que j'ai un objet gestionnaire de blog qui souhaite générer une liste de blogs trouvés dans la base de données. Les options pour le faire (autant que je sache) sont les suivantes :
- new Blog();
- $this->loader->blog();
- l'objet loader crée divers autres types d'objets comme des objets de base de données, des filtres de texte, etc.
- $this->blogEntryFactory->create();
Cependant, #1 est mauvais car cela crée un couplage fort. #2 semble toujours mauvais car cela signifie que l'usine d'objets doit être injectée au préalable - exposant ainsi tous les autres objets qu'elle peut créer.
Le numéro 3 semble correct, mais si j'utilise #3, dois-je mettre les mots-clés "new" dans la blogEntryFactory elle-même, OU, injecter le loader dans la blogEntryFactory et utiliser le loader ?
Si j'ai beaucoup de différentes usines comme blogEntryFactory (par exemple, je pourrais avoir userFactory et commentFactory), il semblerait que mettre le mot-clé "new" sur toutes ces différentes usines créerait des problèmes de dépendance.
J'espère que cela a du sens...
REMARQUE
J'ai eu quelques réponses disant que c'était inutile pour cet exemple de blog spécifique, mais il existe en fait des cas où vous devriez utiliser le modèle de fabrique abstraite, et c'est le point sur lequel je veux aller. Utilisez-vous "new" dans ce cas, ou faites-vous autre chose ?