-
- Смысл не просто зажечь светодиод а зажечь светодиод с помощью
единого интерфейса независимо от того находится ли светодиод на
локальном пине, на шине, доступен через модбас или этот светодиод
на марсоходе, а марсоход уже летит в грунт. Boвa(24 знак., 23.06.2024 13:42 - 13:52)
- Вы пытаетесь свалить в одну кучу сущности обладающие принципиально
разными свойствами, это неприемлемо!!! Кстати типовая фича
ООПшнутых. Светодиод на GPIO зажгется всегда и мгновенно, светодиод
на hc595 зажгется после завершения spi транзакции а на модбас может
не зажечься вовсе если связь потеряна. А теперь представьте что
другой такой же гений абстракций применит ваш класс для управления
сигналом DE трансивера RS485 через оптрон (а ЧО, этож светодиод) а
оно на 595 регистре. 3m(41 знак., 23.06.2024 14:15)
- Класс Led не получится применить для RS485, если он нормально
спроектирован. Компилятор ошибку должен выдать. На этапе написания
кода даже будет ошибка. В этом суть. И на другой плате тот же код
будет работать, достаточно лишь нижний слой-распиновну сменить. А
Скрипач будет все свои функции переписывать. - Costic(24.06.2024 23:28)
- Почему? Прерпишется функцыя setLedState(0/1). Собсно, "нижний слой-распиновка". Зачем переписывать все функцыи? - mse homjak(25.06.2024 16:38)
- Ошибки в момент компиляции можно избежать, но код конечно правильно работать не будет. Однако это не говорит о плохости так как умелый программист всегда найдет 1000 способов вышибить себе мозги. Boвa(262 знак., 25.06.2024 00:19)
- У него будет изменён только нижний слой, платформозависимый.
Бизнес-логика ни одной строчкой не поменяется. - POV(24.06.2024 23:35)
- Даже дата-время последнего обращения у файлов с бизнес-логикой не изменится (что, к слову, тоже небесполезно). - Cкpипaч(25.06.2024 08:01)
- Та самая дырявая в абстракция - имет больше свойств чем описано в интерфейсе. Если мы хотим единообразия в таком вопросе, то интерфейс нужно расширять методами и кодами ошибок на весь зоопарк, даже на ногопортовый светодиод. А это куча лишней писанины и ещё больше лишних проверок в коде. Изредка в этом есть смысл, например для плагинов. Но чаще - нет. - =AlexD=(24.06.2024 09:54)
- Точнее "довожу до абсурда". - Boвa(23.06.2024 14:51)
- С дуру и хрен сломать можно :) - VladislavS.(23.06.2024 14:20)
- Класс Led не получится применить для RS485, если он нормально
спроектирован. Компилятор ошибку должен выдать. На этапе написания
кода даже будет ошибка. В этом суть. И на другой плате тот же код
будет работать, достаточно лишь нижний слой-распиновну сменить. А
Скрипач будет все свои функции переписывать. - Costic(24.06.2024 23:28)
- Не стоит брать слишком большую лопату. - Cкpипaч(23.06.2024 13:44)
- +1 - Гyдвин(23.06.2024 14:31)
- Вы пытаетесь свалить в одну кучу сущности обладающие принципиально
разными свойствами, это неприемлемо!!! Кстати типовая фича
ООПшнутых. Светодиод на GPIO зажгется всегда и мгновенно, светодиод
на hc595 зажгется после завершения spi транзакции а на модбас может
не зажечься вовсе если связь потеряна. А теперь представьте что
другой такой же гений абстракций применит ваш класс для управления
сигналом DE трансивера RS485 через оптрон (а ЧО, этож светодиод) а
оно на 595 регистре. 3m(41 знак., 23.06.2024 14:15)
- В данной теме светодиод это лишь сущность для обсуждения принципов без залезания в дебри. - VladislavS.(23.06.2024 13:36)
- Смысл не просто зажечь светодиод а зажечь светодиод с помощью
единого интерфейса независимо от того находится ли светодиод на
локальном пине, на шине, доступен через модбас или этот светодиод
на марсоходе, а марсоход уже летит в грунт. Boвa(24 знак., 23.06.2024 13:42 - 13:52)