Pour un site Web sur lequel je travaille, j'ai créé un objet Service Média que j'utilise dans le frontal, ainsi que dans le backend (CMS). Cet objet Service de médias manipule les médias dans un référentiel local (DB); il offre la possibilité de télécharger/intégrer des vidéos et télécharger des images. En d'autres termes, les visiteurs du site Web peuvent le faire dans le frontal, mais les administrateurs du site peuvent également le faire dans le backend. Je voudrais que ce service envoie un mail aux administrateurs quand un visiteur a téléchargé/incorporé un nouveau support dans le frontend, mais évite de les poster quand ils téléchargent/embarquent eux-mêmes un support dans le backend.Bon cas pour un modèle d'objet nul? (Fournir un service avec un service de messagerie)
J'ai donc commencé à me demander si c'est un bon cas pour passer un objet nul, qui imite la fonctionnalité du courrier, au service multimédia dans le backend. Je pensais que cela pourrait être utile lorsqu'ils décident que le backend doit également avoir implémenté la fonctionnalité de messagerie.
En termes simplifiés I'ld aiment faire quelque chose comme ceci:
Frontend:
$mediaService = new MediaService(new MediaRepository(), new StandardMailService());
Backend:
$mediaService = new MediaService(new MediaRepository(), new NullMailService());
Comment vous sentez-vous à ce sujet? Est-ce que ça a du sens? Ou est-ce que je me prépare à des problèmes sur la route?
Bonjour Berryl. Merci pour votre réponse. J'ai décidé d'emprunter une route différente; J'ai fait mes événements d'envoi de service de médias (événements de CRUD), et ai installé un service de courrier dans le front end et l'ai laissé écouter l'événement CREATED. Cependant, j'aime votre réponse pour référence. Des trucs sensés! Cela peut s'avérer utile à un autre moment. Je vais laisser la question ouverte pendant un moment cependant. Qui sait quelles autres idées brillantes seront ajoutées par d'autres personnes. +1 cependant. –
+1 Même si Berryl a adopté une approche différente, c'est une excellente réponse. L'une des questions les plus intéressantes auxquelles nous devons répondre lorsque nous avons un grand arsenal de modèles sous nos ceintures est de mettre en œuvre celle qui correspond le mieux au problème en question. –