Предположим, у меня есть служба StateService , которая имеет метод ChangeState .
ChangeState(State toState, DomainObject object)
У меня есть бизнес-правила, которые проверяют, является ли состояние назначения действительным или нетв текущем «состоянии» объектов домена, как я могу технически проверить эти правила без предварительной установки toState для объекта домена?Сначала неправильно устанавливать новое состояние , запускать проверку и, если одно или несколько нарушений правил сбрасывать состояние .
Одно решение, которое я придумал, - это создатьнекоторый объект контекста, который управляет проверкой, например. ChangeStateContext , который содержит DomainObject вместе с состоянием, которое должно быть установлено.
Другой связанный с этим вопрос - как сообщить о вызове ChageState, как он прошел?
Я могу собрать всеправила проверки, которые нарушают и выдают исключение с теми правилами, которые вызывающий может соответствующим образом перехватить и обработать, или я могу добавить тип возврата в метод ChangeState, например ValidationSummary , который содержит информацию о нарушенных правилах и тому подобное.Какова лучшая практика в этих случаях?