मेरी राय है कि आपको दीर्घकालिक स्थिरता और कार्यक्रम की स्थिरता को बेहतर बनाने के लिए जो कुछ भी लिखने की आवश्यकता है वह आपको लिखना चाहिए । आज कोड की 20 लाइनों को लिखने से बचने का क्या मतलब है, अगर हर बार आप इस कोड का उपयोग करने वाले किसी चीज़ को छूते हैं या इस क्लास को बनाए रखने के लिए वापस आते हैं, तो यह आपके लिए अतिरिक्त 5 मिनट या उससे अधिक का खर्च है क्योंकि आपने आज समय नहीं डाला है?
तो सवाल फिर "आप क्या लिखने की जरूरत है?" मुझे नहीं लगता कि आप पर्याप्त जानकारी तो मैं बस कुछ चीजें हैं जो सूचीबद्ध करेंगे, एक निश्चित जवाब देने के लिए सक्षम होने के लिए प्रदान करते हैं मैं एक निर्णय लेने में के बारे में सोचना होगा:
1. क्या आपको ट्रेलर ऑब्जेक्ट को स्वयं, अभी या भविष्य में देखने की आवश्यकता है?
यदि हां, तो आपके पास दोनों कंपोजिट ऑब्जेक्ट्स के आसपास रैपर बनाने के लिए एक बहुत अच्छा तर्क है, क्योंकि आप पहले से ही एक या दूसरे को लपेटने जा रहे हैं। साथ ही सुसंगत हो सकता है।
2. क्या कोड के एक क्षेत्र में तीन प्रकार (कार, ट्रेलर, CarWithTrailer) में से कोई एक है जो डेवलपर्स अक्सर जाते हैं या ऐसा बनने की संभावना देखते हैं?
यदि ऐसा है, तो बहुत सावधान रहें, क्योंकि हर बार कोड को छूने पर गलत चीज़ चुनने के प्रभाव को बहुत महंगा किया जा सकता है। यदि नहीं, तो इससे कोई फर्क नहीं पड़ता कि आप क्या निर्णय लेते हैं। बस एक दिशा चुनें और उसके साथ जाएं।
3. समझने में आसान क्या है?
क्या कोई दृष्टिकोण आपके ऊपर कूदता है कि आपके पीछे आने वाला व्यक्ति तुरंत "मिल" जाएगा जो आप करने की कोशिश कर रहे हैं? क्या आपके टीम के साथियों में विशेष रूप से पूर्वाग्रह हैं जो उन्हें बनाए रखने के लिए एक दृष्टिकोण कठिन बना सकते हैं? यदि सभी चीजें समान हैं, तो सबसे कम संज्ञानात्मक भार लगाने वाले समाधान को चुनें।
4. क्या किसी दूसरे पर एक दृष्टिकोण का उपयोग करने के लिए कोई अतिरिक्त लाभ हैं?
एक बात जो मुझ पर उछलती है, वह यह है कि रैपर विचार का एक अलग फायदा है यदि आप इसे लिखते हैं कि आपका CarWithTrailerWrapper किसी भी कार और किसी भी ट्रेलर को CarWithTrailer में लपेट सकता है। फिर, आप अपने सभी पास-थ्रू तरीकों को लिखना बंद कर देते हैं, लेकिन आप प्रत्येक कार क्लास के लिए एक बार के बजाय केवल एक बार उन्हें लिखते हैं ।
जब आप अधिक कार और ट्रेलर जोड़ते हैं, तो यह पास-थ्रू तरीकों को लिखने में आपका प्रारंभिक निवेश करता है। यह कुछ चीजों के प्रलोभन को सीधे वोल्वो या वोल्वोविथट्रेलर तक ले जाने में भी मदद करता है, जबकि कारविथट्रेलरव्रेपर में कपलिंग के परिणामों को कम करने के बाद से, आप केवल एक कार्यान्वयन के साथ और अधिक कर सकते हैं।
हो सकता है कि विस्तार विधि का उपयोग करके आपको अलग-अलग फायदे मिलेंगे, लेकिन मैं उन्हें नहीं देखता।
ठीक है, ऐसा लगता है कि मैंने गैर-तुच्छ अनुप्रयोगों के लिए खुद को आगे बढ़ने और पास-थ्रू तरीकों से भरने के लिए बात की है।
मैं C ++ प्रोग्रामर नहीं हूं, इसलिए मुझे नहीं पता कि कोड जनरेशन टूल आपके लिए क्या उपलब्ध हैं। मैं जिस आईडीई का उपयोग करता हूं, वह एक इंटरफ़ेस से विधियां उत्पन्न कर सकता है, और मैं कोड टेम्प्लेट जोड़ सकता हूं जो लेखन को पास-थ्रू बहुत दर्दनाक बना देगा। यदि आपके पास ऐसा करने वाले IDE तक पहुंच नहीं है, तो आप वास्तव में एक्सेल को आपके लिए कोड लिखने दे सकते हैं ।