события и разные подписчики
От: lumf  
Дата: 08.10.07 12:27
Оценка:
Привет всем.

Не могу сварганить архитектуру. Укажите на минусы плюсы и возможные пути реализации

Есть класс назвоем его EventManager.
1 Класс должен увидеть новый ивент и отправить его всем подписчикам. После того как отправил и событие обработалось должен вернуться статус обработки, который ядолжен записать в базу напротив ивента(типа событие обработано). Предположительно поставлю этот статус в какое нить поле в eventargs и по возвращении в класс EventManager запишу его в базу.
Вопрос: у меня будет один подписчик,который реально что-то сделает с ивентом и поставит ему статус. В случае если у меня будет два подписчика и оба поменяют статус, то в базу запишется последний, так? Что-то как-то криво выглядит...


2 Есть класс SubscirberNumber1
В нем реализована ОДИНАКОВАЯ логика обработки этого ивента.
Следствием обработки данного события должно быть:
1. Статус обработки (который я запишу в EventArgs)
2. Некий текст, который должен быть отправлен куда-то дальше FooGate.Insert(text)
3. логика обработки этого ивента предполагает что нужно будет выполнить еще ряд действий.


3 Есть класс SubscirberNumber2
В нем реализована ОДИНАКОВАЯ логика обработки этого ивента.
Следствием обработки данного события должно быть:
1. Статус обработки (который я запишу в EventArgs)
2. Некий текст, который должен быть отправлен куда-то дальше BarGate.Insert(text)
3. логика обработки этого ивента предполагает что нужно будет выполнить еще ряд действий.


4 Есть класс SubscirberNumber3
В нем реализована ДРУГАЯ ЛОГИКА обработки этого ивента.
Следствием обработки данного события должно быть:
1. Статус обработки (который я запишу в EventArgs)
2. Некий текст, который должен быть отправлен куда-то дальше FooGate1.Insert(text)
3. логика обработки этого ивента предполагает, что нужно будет выполнить еще ряд действий.


Корчое идея такая:
в первых двух подписчкиах логика обработки одинаковая, в треьем иная. Эту логику не хотелось бы повторять, потому что она гигантская. Да ине хорошо это!
Пункт 1 у всех подписчиков одинаковый.
Пункт 2 у всех разный, в какой гейт пихнуть текст в принципе знает EventManager
где нужно пихать этот текст? Если в EventManager, то нужно вернуть этот текст(полагаю посредством EventArgs), если в самом подписчике, то ему нужно знать куда ему пихать этот текст.
Пункт 3 у всех подписчиков одинаковый, но опять же эти действия можно вызвать непосредственно из подписчиков, а можно и из EventManager



Короче вот я запутался!
Сиськи и процессоры
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.