Допустим, у меня есть графический интерфейс с несколькими типами средств просмотра пользовательских объектов. Например, представление в виде дерева, представление в виде списка и представление диаграммы. Три представления показывают одни и те же объекты. Если пользователь удаляет объект из одного представления, я хотел бы запустить событие, чтобы уведомить два других представления. В настоящее время я делаю это, выставляя событие на самом объекте. Таким образом, если объект удален из представления 1, представление 1 вызовет удаление объекта, которое затем отправит событие подписчикам (все 3 представления). У каждого подписчика есть возможность отменить удаление.
Есть несколько проблем, как я это вижу. Если подписчик отменяет удаление после того, как другой подписчик уже одобрил удаление, я должен указать этим подписчикам отменить удаление.
Есть ли хорошие шаблоны для реализации такого общего сценария?