Соответствующая структура Class, представляющая аппаратное устройство - PullRequest
0 голосов
/ 21 ноября 2011

Я пытаюсь закодировать интерфейс для базового устройства ЭКГ.Мне нужна форма для настройки устройства, отправки сообщения «запись» и сохранения данных ЭКГ, которые возвращаются в файл (а также немного отчета на экране).Аппаратное устройство получает отправленные команды и возвращает данные через последовательный интерфейс.

Мой вопрос касается наиболее подходящих структур классов для настройки.

Опция 1: MainWindow создает экземпляр объекта аппаратного устройства, которыйчитает информацию ЭКГ в реальном времени, создает «объект класса файла ЭКГ» и обрабатывает все это внутри объекта Device.Когда запись завершена, MainWindow удаляет объект Device, и все готово.

Вариант 2: MainWindow создает экземпляр объекта аппаратного устройства, который получает целый набор данных, поддерживает эти данные в качестве общедоступной структуры данных (член) затем MainWindow будет ссылаться на эту структуру данных объекта устройства, создавать экземпляр объекта класса файла ЭКГ сам и записывать его в файл.

В идеале я хотел бы записать данныев разных форматах (например, классы, которые определяют формат?)

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

Я попробовал вариант 1, но он становится уродливым, и я не уверен, неправильно ли я спроектировал его с самого начала.

Любые / все мнения приветствуются!

Пит

1 Ответ

1 голос
/ 29 мая 2012

Не зная слишком много о Домене, я разработал несколько систем, которые используют устройства.Мне тоже показался какой-то дизайн для устройств.Есть много способов спроектировать такие вещи, но мне нравится писать оболочки для всех устройств и использовать интерфейс open, close, read и write.

Таким образом, по сути, создается абстрактный класс под названием Device.Конкретные устройства могут быть разработаны для расширения этого базового класса.Затем создается класс строителя для создания и инициализации определенного класса.Из этого базового класса может быть построена система для обработки входных и выходных данных.Я склонен проектировать интерфейсы и делать классы максимально простыми.

...