Possible en double:
What does the single responsibility principle mean for validationsur la "Responsabilité unique" et la pratique de codage pour la validation de l'objet
Cas A: Valider objet -> Envoyer à la méthode -> Méthode suppose objet valide -> La méthode s'exécute
Cas B: Envoyer à la méthode -> Méthode vérifie la validité de l'objet -> La méthode s'exécute UNIQUEMENT SI valide
Dans le cas A, I peut avoir la méthode responsable d'une tâche (exécuter). Cependant, je peux accidentellement passer un objet invalide. (Bien sûr, je peux éviter cela avec un codage soigneux, mais c'est le cœur de ma question ...)
Dans le cas B, la méthode ne s'exécutera jamais sur un objet invalide, mais elle doit être responsable non seulement de l'exécution son code mais aussi la validation de l'objet. N'est-ce pas une sorte de violation de la «responsabilité unique»?
MERCI!
Si la validation n'est pas évidente (plus de 2/3 lignes de codes) que je préfère personnellement passer à une autre méthode. Si la validation est partagée entre différentes méthodes de classes, je la déplacerais vers une autre classe. Je lance une application excpetion pour signaler des problèmes de validation. Le principe de la responsabilité unique concerne les classes et non les méthodes. –
En toute justice, je préfère utiliser le SRP à des méthodes aussi, le code est beaucoup plus maintenable de cette façon. Une méthode qui obtient des choses à partir de DB, met à jour les stats, etc. Les petites méthodes impliquent SRP et vous voulez plusieurs méthodes clairement définies au lieu de deux ou trois béhémots. – MikeSW