2012-04-10 14 views
5

मुझे इस मुहावरे के बारे में समझने का अर्थ यह है कि यह उपयोगी है क्योंकि यह सुनिश्चित करता है कि संसाधनों को उनके द्वारा उपयोग की जाने वाली वस्तु के बाद जारी किया जाता है।आरएआईआई का नाम क्यों रखा गया है?

दूसरे शब्दों में, इसके बारे में de-अधिग्रहण और de-initialisation अधिक है, तो क्यों यह मुहावरा जिस तरह से यह है नाम है?

उत्तर

6

सबसे पहले, मुझे ध्यान रखना चाहिए कि इसे व्यापक रूप से खराब नामित मुहावरे माना जाता है। बहुत से लोग एसबीआरएम पसंद करते हैं, जो स्टैक बाउंड रिसोर्स मैनेजमेंट के लिए खड़ा है। यद्यपि मैं (क्रोध से) "राई" का उपयोग करने के साथ-साथ जाता हूं क्योंकि यह व्यापक रूप से ज्ञात और उपयोग किया जाता है, मुझे लगता है कि एसबीआरएम वास्तविक इरादे का एक बेहतर विवरण देता है।

दूसरा, जब आरएआईआई नया था, तो उसने संसाधनों को जारी करने के रूप में अधिग्रहण के लिए उतना ही लागू किया। विशेष रूप से, उस समय प्रारंभिकता को दो चरणों में देखने के लिए काफी आम था। आप पहले किसी ऑब्जेक्ट को परिभाषित करेंगे, और उसके बाद ही उस ऑब्जेक्ट से जुड़े किसी भी संसाधन को गतिशील रूप से आवंटित करेंगे। कई स्टाइल गाइड ने इसका समर्थन किया, काफी हद तक क्योंकि उस समय (सी ++ में अपवाद हैंडलिंग से पहले) कन्स्ट्रक्टर में विफलता से निपटने का कोई अच्छा तरीका नहीं था। इसलिए, स्टाइल गाइड अक्सर कहते हैं, रचनाकारों को केवल न्यूनतम काम करना चाहिए, और विशेष रूप से विफलता के लिए खुले कुछ भी बचें - विशेष रूप से संसाधन आवंटित करना (और कुछ अभी भी ऐसी चीजें कहें)।

हालांकि कुछ पहले से ही को नष्ट कर चुके हैं, जो को विनाशक में संसाधन जारी करते हैं, इसलिए यह पिछले अभ्यास से एक भेद स्पष्ट नहीं होता।

संबंधित मुद्दे