Вопрос о том, когда и когда не следует поднимать события (C #) - PullRequest
0 голосов
/ 14 мая 2010

Я программирую библиотеку мгновенных сообщений для MSN Messenger, и у меня есть простой вопрос о создании событий.

При входе в систему я должен вызывать UserAdded для каждого синхронизируемого пользователя (уже в списке контактов) или событие UserAdded должно быть зарезервировано для добавления нового пользователя в список контактов с помощью метода AddUser? Должен ли я использовать другое событие, UserDownloaded для когда пользователь загружается?

Аналогично, когда я вызываю выход из системы, должен ли я вызывать UserRemoved?

Надеюсь, это имеет смысл.

Спасибо

1 Ответ

4 голосов
/ 14 мая 2010

Это более общий вопрос проектирования, и он может зависеть от вашего конкретного случая - например, Что вы планируете использовать события? Какая информация нужна пользователю библиотеки?

Я думаю, что инициирование события, когда пользователь добавляется из любого источника (как локально, так и при загрузке нового пользователя), более полезно, потому что вы можете использовать событие как уведомление о том, когда вам нужно обновить список пользователи (например). Событие также может содержать некоторую YourEventArgs информацию, которая будет содержать информацию об источнике (локальный или загруженный).

Инициирование события при вызове какого-либо метода может быть не таким полезным (если метод вызывается пользователем библиотеки), поскольку пользователь библиотеки, вероятно, будет знать, что он вызывает метод (поэтому он этого не делает об этом нужно уведомить).

...