Как выпускать целевые события C # для определенных обработчиков событий? - PullRequest
1 голос
/ 25 декабря 2008

Предположим, у меня есть объект Customer, который может одновременно входить в несколько магазинов и делать покупки. Когда покупатель входит в Магазин, Магазин начинает обрабатывать события, инициированные Клиентом. Чтобы приобрести предмет, Клиент в настоящий момент инициирует событие PurchaseItem с конкретным предметом, указанным в EventArgs.

В настоящее время, поскольку Клиент может находиться в нескольких магазинах одновременно, всякий раз, когда он запускает событие PurchaseItem, все магазины, в которых он находится, уведомляются. Есть ли способ с использованием событий , что, когда Клиент инициирует событие PurchaseItem, уведомление получает только Магазин, в котором находится этот элемент?

Ответы [ 4 ]

1 голос
/ 25 декабря 2008

Что если вы сообщите об этом в магазин, в котором он находится? Затем вы можете позвонить номенклатуре. Приобретите товар (это) в качестве клиента, и товар вызовет событие магазина.

1 голос
/ 25 декабря 2008

Это звучит как очень странный способ моделирования вещей. Покупка должна быть действием между магазином и покупателем - прямой вызов метода, вероятно, от покупателя к магазину. Это может вызвать событие, но я бы не стал использовать событие для первоначальной покупки. Может быть, это имеет больше смысла в вашем реальном контексте ... но трудно сказать, не зная больше деталей.

0 голосов
/ 25 декабря 2008

присваивают вашим событиям идентификатор «канала», соответствующий соответствующему хранилищу, и хранилищам кода, чтобы игнорировать события, не входящие в их «канал»

но Джон Скит прав (Джон Скит всегда Право, или по крайней мере 99,999% правильности), это плохой дизайн - возможно, с более подробной информацией мы поможем вам исправить это

0 голосов
/ 25 декабря 2008

Я думаю, что Команды являются предпочтительным способом обработки событий с широким таргетингом. Это избавит вас от необходимости правильно подключать все. Ваш клиент может выдать Команду покупки, а магазины - ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...