Я работаю над средним встроенным приложением в C, используя OO-подобные методы. Мои "классы" - это модули .h / .c, использующие структуры данных и структуры указателей функций для эмуляции инкапсуляции, полиморфизма и внедрения зависимостей.
Теперь можно ожидать, что myModule_create(void)
функция придет с myModule_destroy(pointer)
аналогом. Но когда проект внедряется, ресурсы, которые реально создаются, никогда не должны высвобождаться.
Я имею в виду, что если у меня есть 4 последовательных порта UART и я создаю 4 экземпляра UART с их необходимыми выводами и настройками, нет абсолютно никакой причины когда-либо хотеть уничтожить UART # 2 в какой-то момент во время выполнения.
Итак, следуя принципу ЯГНИ (тебе это не понадобится), я должен опустить деструкторы? Это кажется мне чрезвычайно странным, но я не могу придумать, как их использовать; ресурсы освобождаются при выключении устройства.
myModule_create(void)
функция? Вы можете просто жестко закодировать конкретные экземпляры, которые вы ожидаете использовать в интерфейсе, который вы предоставляете.