Скажем, у меня есть компонент C, который используется в двух местах моего приложения. Например, у меня есть список папок, которые отображаются на 2 вкладках. Когда пользователь переименовывает папку в одной части, это изменение должно отражаться и на другой.
Я думаю использовать для этого EventBus и сделать компонент папок для запуска события EventBus, скажем, FolderChangedEvent. Это событие будет перехвачено вторым компонентом папки, который автоматически обновит свой список папок.
Вопрос в том, что если я захочу в какой-то момент использовать этот компонент папки в третьем месте, в этом месте также будет обновлен список папок. Это может быть нежелательным поведением приложения.
Обычно я бы сделал компонент Folder собственным методом addFolderChangedHandler (...), но поскольку этот компонент довольно сложен и имеет подкомпоненты, это может создать код типа спагетти. Однако мне не кажется, что этот компонент должен содержать какую-либо специфичную для приложения логику и генерировать события непосредственно в EventBus приложения, что является для него слишком высоким уровнем.
Что лучше всего подходит для этого случая и как эффективно использовать EventBus?