Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Я думаю, что городить иерархию классов ради иерархии классов в простых программах - это извращение.
Отправлено
Oldring 01 августа 2009, г. 14:34
В ответ на:
Oldring, что думаешь по этому вопросу ? отправлено пользователем
DASM 01 августа 2009, г. 14:09
Общий предок нужен когда будут централизованно выполняться общие операции, как правило, не сводящиеся к инициализации. Или когда нужна абстракция для части переносимого кода. Вот сделали, например, файл - и можно писать и читать из всех файлов единообразно. Файл и Файловые операции в таком случае - это проверенная временем полезная абстракция. Ну а билдеры во встроенных приложениях с фиксированными ресурсами - явно лишняя.
Нередко более дешевой и понятной альтернативой абстракции служит просто текстуальная правка кода с хорошими коммпентариями.
По сути вопроса. Ты хочешь разделить логику компорта и шины. У тебя этот порт - только Modbus? Тогда сделай Modbus потомком компорта. Ну и обрабатывай символы в виртуальной функции компорта, переопределенной в потомке. Какие у компорта базы - совершенно не важно. Да, если у тебя компорт с буфером - лучше передавай обработчикам указатель на массив и длину, а не один символ.
Другой вариант развязки - опиши в файле компорта абстрактный класс с pure virtual функциями, являющийся интерфейсом уведомлений от компорта. Отнаследуй от него свой Modbus. Добавь к компорту метод регистрации уведомлений. Обычно достаточно одного потребителя уведомлений (обработчика потока символов), поэтому со списками уведомлений не заморачивайся - просто указатель. Не забудь про возможность отписывания.
Составить ответ | Вернуться на конференцию.
Ответы