fk0, легенда (25.10.2013 16:28, просмотров: 528) ответил Звероящер на То есть, если есть например алгоритм работы с 1-wire, то опускаем его до уровня HAL, а наверх оставляем что-то вроде SendMessage(), GetMessage(). Э?
Не совсем. Над HAL может быть ещё один слой, уже нужный для совмещения разных программных интерфейсов. Т.е. есть модуль A, который, потенциально может работать с модулем B или модулем C. Как быть? Вариант первый: в проект можно включить либо только B, либо только C, но не оба одновременно. Тогда у них может быть одинаковый интерфейс и тогда модуль A может его сразу использовать как есть. А если мы хотим включить и B, и C одновременно и нацелить A на работу только с одним из, то интерфейсу у B и C разные получаются. И нужен модуль-прослойка D, который просто свяжет A с B или с C. Интерфейс у D будет известным для A, но A уже ничего не знает о B или о C. И, соответсвенно, может быть несколько разных модулей типа D для связи A с B или A с C...
[ZX]