Il existe deux classes dans mon projet (utilisant ASP.NET MVC): AuthenticationService et ProfileService. Lorsqu'un nouvel utilisateur s'inscrit sur mon site, l'action Enregistrer du contrôleur d'authentification appelle une méthode Register dans IAuthenticationService, qui crée un enregistrement d'authentification pour l'utilisateur selon le module d'authentification concret auquel l'interface fait référence (injecté dans le constructeur du contrôleur). Dans le cadre du processus d'enregistrement, un enregistrement de profil est créé pour l'utilisateur. Il est créé en appelant CreateProfile (User) sur le service IProfileService injecté. À l'heure actuelle, le contrôleur appelle les deux services, mais j'aime l'idée que mon contrôleur fonctionne aussi peu que possible. Je me demande si j'ai d'autres options que de laisser le service d'authentification connaître le service de profil, ce qui nécessitera à son tour l'implémentation future de IAuthenticationService pour savoir comment appeler CreateProfile? Je ne peux pas m'empêcher de sentir que l'odeur du code est écrite partout.Un service doit-il être référé à un autre ou l'appelant doit-il prendre une responsabilité supplémentaire?
Une autre possibilité est d'avoir un troisième service, {I,} RegistrationService, responsable de la logique.
Quelle est la manière recommandée ou préférée de gérer cette situation? Merci
Je pense que c'est ce que je vais faire, extraire le processus d'enregistrement dans un service distinct ({I} RegistrationService). Cela semble juste plus propre. Merci. –