Saya sedang mengerjakan aplikasi embedded media dalam C menggunakan teknik mirip OO. "Kelas" saya adalah modul .h / .c menggunakan struct data dan struct pointer fungsi untuk meniru enkapsulasi, polimorfisme, dan injeksi dependensi.
Sekarang, orang akan mengharapkan myModule_create(void)
fungsi untuk datang dengan myModule_destroy(pointer)
rekan. Tetapi proyek yang tertanam, sumber daya yang dipakai secara realistis tidak boleh dirilis.
Maksud saya, jika saya memiliki 4 port serial UART dan saya membuat 4 instance UART dengan pin dan pengaturan yang diperlukan, sama sekali tidak ada alasan untuk ingin menghancurkan UART # 2 di beberapa titik selama runtime.
Jadi mengikuti prinsip YAGNI (Anda tidak akan membutuhkannya), haruskah saya menghilangkan destruktor? Ini tampak sangat aneh bagi saya, tetapi saya tidak bisa memikirkan manfaatnya bagi mereka; sumber daya dibebaskan ketika perangkat mati.
myModule_create(void)
fungsi? Anda bisa membuat hard-code contoh spesifik yang Anda harapkan untuk digunakan ke antarmuka yang Anda tampilkan.