ฉันกำลังทำงานกับแอพพลิเคชั่นแบบฝังตัวขนาดกลางใน C โดยใช้เทคนิคแบบ OO "คลาส" ของฉันคือโมดูล. h / .c โดยใช้ data structs และ function pointers structs เพื่อเลียนแบบ encapsulation, polymorphism และการฉีดพึ่งพา
ตอนนี้ใคร ๆ ก็คาดหวังว่าmyModule_create(void)
ฟังก์ชั่นจะมาพร้อมกับmyModule_destroy(pointer)
คู่ แต่โครงการที่ถูกฝังอยู่นั้นทรัพยากรที่มีการสร้างอินสแตนซ์สมจริงไม่ควรปล่อยออกมา
ฉันหมายถึงถ้าฉันมีพอร์ตอนุกรม UART 4 พอร์ตและฉันสร้างอินสแตนซ์ UART 4 อันด้วยหมุดและการตั้งค่าที่ต้องการมีเหตุผลที่ไม่ต้องการทำลาย UART # 2 ในบางจุดในระหว่างรันไทม์
ดังนั้นตามหลักการ YAGNI (คุณไม่ต้องการมัน) ฉันควรละเว้น destructors หรือไม่ มันดูแปลกมากสำหรับฉัน แต่ฉันไม่สามารถนึกถึงการใช้งานได้สำหรับพวกเขา ทรัพยากรจะถูกปลดปล่อยเมื่ออุปกรณ์ปิด
myModule_create(void)
ฟังก์ชั่น? คุณสามารถเขียนโค้ดอินสแตนซ์เฉพาะที่คุณคาดว่าจะใช้กับอินเทอร์เฟซที่คุณเปิดเผย