Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Я думаю, что городить иерархию классов ради иерархии классов в простых программах - это извращение.

Отправлено Oldring 01 августа 2009, г. 14:34
В ответ на: Oldring, что думаешь по этому вопросу ? отправлено пользователем DASM 01 августа 2009, г. 14:09

Общий предок нужен когда будут централизованно выполняться общие операции, как правило, не сводящиеся к инициализации. Или когда нужна абстракция для части переносимого кода. Вот сделали, например, файл - и можно писать и читать из всех файлов единообразно. Файл и Файловые операции в таком случае - это проверенная временем полезная абстракция. Ну а билдеры во встроенных приложениях с фиксированными ресурсами - явно лишняя.

Нередко более дешевой и понятной альтернативой абстракции служит просто текстуальная правка кода с хорошими коммпентариями.

По сути вопроса. Ты хочешь разделить логику компорта и шины. У тебя этот порт - только Modbus? Тогда сделай Modbus потомком компорта. Ну и обрабатывай символы в виртуальной функции компорта, переопределенной в потомке. Какие у компорта базы - совершенно не важно. Да, если у тебя компорт с буфером - лучше передавай обработчикам указатель на массив и длину, а не один символ.

Другой вариант развязки - опиши в файле компорта абстрактный класс с pure virtual функциями, являющийся интерфейсом уведомлений от компорта. Отнаследуй от него свой Modbus. Добавь к компорту метод регистрации уведомлений. Обычно достаточно одного потребителя уведомлений (обработчика потока символов), поэтому со списками уведомлений не заморачивайся - просто указатель. Не забудь про возможность отписывания.


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 45:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru