मैं O- जैसी तकनीकों का उपयोग करके C में एक मध्यम एम्बेडेड एप्लिकेशन पर काम कर रहा हूं। मेरी "कक्षाएं" डेटा स्ट्रक्चर्स और फ़ंक्शन पॉइंटर्स स्ट्रक्चर्स का उपयोग करते हुए एन्कैप्सुलेशन, बहुरूपता और निर्भरता इंजेक्शन का उपयोग करने के लिए .h / .c मॉड्यूल हैं।
अब, कोई myModule_create(void)
एक myModule_destroy(pointer)
प्रतिपक्ष के साथ आने की अपेक्षा करेगा । लेकिन परियोजना अंतःस्थापित की जा रही है, जो संसाधन वास्तविक रूप से त्वरित हैं, उन्हें कभी जारी नहीं किया जाना चाहिए।
मेरा मतलब है, अगर मेरे पास 4 UART सीरियल पोर्ट हैं और मैं उनके आवश्यक पिन और सेटिंग्स के साथ 4 UART इंस्टेंस बनाते हैं, तो रनटाइम के दौरान कभी भी UART # 2 को नष्ट करने का कोई कारण नहीं है।
इसलिए YAGNI (आपको इसकी आवश्यकता नहीं है) सिद्धांत का पालन करते हुए, क्या मुझे विनाशकों को छोड़ना चाहिए? यह मुझे बहुत अजीब लगता है, लेकिन मैं उनके लिए एक उपयोग के बारे में सोच भी नहीं सकता; उपकरण के बंद होने पर संसाधन मुक्त हो जाते हैं।
myModule_create(void)
फ़ंक्शन भी क्यों है? आप केवल उस विशिष्ट उदाहरण को हार्ड-कोड कर सकते हैं जिसे आप अपने द्वारा बताए गए इंटरफ़ेस में उपयोग करने की अपेक्षा करते हैं।