Рекомендации: Обработка отключений оборудования в классах, которые их представляют. - PullRequest
2 голосов
/ 26 января 2010

Я работаю в VB.Net над разработкой программного обеспечения для регистрации данных. Я разработал классы, реализующие общий интерфейс, который работает со многими регистраторами данных, которые производит моя компания. Эти классы обрабатывают низкоуровневое аппаратное взаимодействие и предоставляют общие методы для доступа к записям регистратора данных.

Моя проблема в том, что было бы хорошо, если бы кто-то внезапно отключил оборудование? Должен ли я генерировать исключение, вызывать событие или возвращать false в каком-то пакете состояния?

Моя основная мысль заключается в том, что я хочу, чтобы объект уведомлял отправителя о том, что устройство, которое он представляет, отключен и дает сбой, а затем каким-то образом сообщает классу DeviceLocator (который автоматически определяет устройства и поддерживает коллекцию), что он был отключен и удалить его из коллекции устройств и утилизировать.

Какие-нибудь советы?

1 Ответ

1 голос
/ 26 января 2010

На высоком уровне, я думаю, вы должны вернуть код результата или сообщение об ошибке из вашего слоя "драйвера". В будущем вы можете захотеть предоставить пакеты данных различным типам клиентов. Если у вас есть клиент WCF или мобильный клиент, вызывающий веб-службы, создание исключения или создание события бесполезно. Вам нужно будет создать еще один слой, который улавливает эти условия и переводит их для каждого клиента, так почему бы не сделать это на самом низком уровне.

Более подробный ответ зависит от вашей фактической архитектуры. Используете ли вы, например, делегаты для уведомления потребителя о новых данных? Почему бы не иметь делегата, который вызывается при возникновении ошибки.

...