Действительно ли эти события должны быть отражены в пользовательском интерфейсе?Рассмотрим Amazon, который отображает «вы только что добавили foo в корзину», но не показывает никаких других деталей.Это может избавить вас от проблемы, переопределив ее.
В противном случае, почему вы боитесь бизнес-логики в «пользовательском интерфейсе», в частности, почему бы не включить некоторые компоненты из службы, которой принадлежит каждая часть этой системы?в вашем клиенте и дать им ответственность за выполнение любых локальных обновлений?
Другими словами, хорошо бы иметь часть логики из вашей налоговой службы, работающей в пользовательском интерфейсе.Вы (очевидно) не доверяете ему расчеты счетов по налогам, но вы можете полностью доверять этому, чтобы делать правильные вещи для клиента.
Другое преимущество этой модели заключается в том, что вы получаете мгновенную обратную связь дляпользователь или, по крайней мере, возможность отображения мгновенной обратной связи, без внесения дополнительных знаний о бизнес-процессах в клиент.
Например, для пересчета доставки требуется время - если ваш клиент показываетВдобавок ко всему, что-то нужно знать, чтобы вызвать это появление, верно?
Если ваш пользовательский интерфейс знает это, он встроил бизнес-процесс в процесс.С другой стороны, если у вас есть код, который является частью службы «доставки», вы можете изменить ответ, который происходит в клиенте, изменив только одну службу ...