Sto lavorando a un'applicazione media embedded in C usando tecniche simili a OO. Le mie "classi" sono moduli .h / .c che utilizzano strutture di dati e strutture di puntatori di funzioni per emulare l'incapsulamento, il polimorfismo e l'iniezione di dipendenza.
Ora, ci si aspetterebbe che una funzione myModule_create(void)
abbia una controparte myModule_destroy(pointer)
. Ma il progetto è incorporato, le risorse che sono istanziate realisticamente non dovrebbero mai essere rilasciate.
Voglio dire, se ho 4 porte seriali UART e creo 4 istanze UART con i pin e le impostazioni richieste, non c'è assolutamente alcun motivo per voler distruggere UART # 2 ad un certo punto durante il runtime.
Quindi, seguendo il principio YAGNI (non ne avrò bisogno), dovrei omettere i distruttori? Mi sembra molto strano, ma non riesco a pensare a un uso per loro; le risorse vengono liberate quando il dispositivo si spegne.