Я решил создать свой собственный агрегатор событий для приложения winforms MVP, которое я пишу. Цель состоит в том, чтобы позволить представлениям (пользовательским элементам управления) подписываться на события из моделей, которые в противном случае имеют свои представления.
Вопрос в том; так как должен быть один общий агрегатор событий, а агрегатор нужен только при составлении приложения пользовательских элементов управления, которые должны взаимодействовать, то как лучше всего выставить агрегатор событий?
Мои предложения на данный момент:
- Я думаю, что его внедрение было бы беспорядком, поскольку все пользовательские элементы управления должны иметь IEventAggregator, а агрегатор не нужен для самого пользовательского элемента управления, а только для основного приложения, которое состоит из пользовательских элементов управления с дополнительными функциями.
- Делаем EventAggregator статическим или одноэлементным. Это, однако, создало бы аналогичную проблему, когда отдельные пользовательские элементы управления должны были бы публиковать события через статический агрегатор.
У вас есть какие-нибудь идеи, чтобы помочь мне?