Estoy trabajando en una aplicación mediana incrustada en C usando técnicas similares a OO. Mis "clases" son módulos .h / .c que usan estructuras de datos y estructuras de punteros de función para emular la encapsulación, el polimorfismo y la inyección de dependencia.
Ahora, uno esperaría que una myModule_create(void)
función venga con una myModule_destroy(pointer)
contraparte. Pero el proyecto está incrustado, los recursos que se instancian de manera realista nunca deben ser lanzados.
Quiero decir, si tengo 4 puertos seriales UART y creo 4 instancias UART con sus pines y configuraciones requeridas, no hay absolutamente ninguna razón para querer destruir UART # 2 en algún momento durante el tiempo de ejecución.
Entonces, siguiendo el principio YAGNI (no lo vas a necesitar), ¿debería omitir los destructores? Esto me parece extremadamente extraño, pero no puedo pensar en un uso para ellos; los recursos se liberan cuando el dispositivo se apaga.
myModule_create(void)
función? Simplemente puede codificar las instancias específicas que espera utilizar en la interfaz que expone.