Supposons que j'ai un service StateService qui a une méthode ChangeState.Comment et quand appliquer des règles métier?
ChangeState(State toState, DomainObject object)
je les règles métier qui vérifie si l'état de destination est valide ou non dans le domaine des objets « état » actuel, comment puis-je vérifier techniquement ces règles sans engager le toState sur l'objet de domaine? Il se sent mal à d'abord définir le nouvel état, exécuter la validation et si une ou plusieurs règles enfreignent l'état.
Une solution que je suis venu avec est de créer un objet de contexte qui conduit la validation par exemple. ChangeStateContext qui contient l'objet DomainObject avec l'état à définir.
Une autre question connexe est de savoir comment rendre compte de l'appel ChageState comment cela s'est passé?
Je peux rassembler toutes les règles de validation qui cassent et lancer une exception avec les règles que l'appelant peut attraper et gérer en conséquence ou je peux ajouter un type de retour sur la méthode ChangeState comme ValidationSummary qui contient des informations sur les règles brisées et autres. Quelles sont les meilleures pratiques dans ces cas?