मुझे पता है कि डेलोक में सेटर्स का उपयोग समस्याएं पैदा कर सकता है, यदि कोई अन्य वस्तु किसी संपत्ति में बदलावों के लिए देख रही है। लेकिन हम उन्हें शुरुआती लोगों में क्यों नहीं इस्तेमाल करना चाहिए?उद्देश्य-सी में प्रारंभिक विधि में स्वयं का उपयोग करने का यह अच्छा अभ्यास क्यों नहीं है?
उत्तर
-init
में एक्सेसर्स का उपयोग न करने का एकमात्र कारण यह है कि आपकी ऑब्जेक्ट पूरी तरह से प्रारंभ नहीं हुई है और एक्सेसर इस पर निर्भर हो सकता है। यह केवल तब होने की संभावना है जब आपके पास उप-वर्ग है जो एक्सेसर विधियों को ओवरराइड करता है।
डीलोकेशन पर एक सममित समस्या है जिसमें एक ओवरराइड एक्सेसर आंशिक रूप से अस्वीकृत ऑब्जेक्ट पर नहीं बुलाया जा सकता है। यह भी मुद्दा है कि आप नकली केवीओ अधिसूचनाएं भेज सकते हैं।
यह उचित encapsulation के दिल में चला जाता है। उप-वर्गों को सुपर क्लास के कार्यान्वयन विवरणों की परवाह करने की आवश्यकता नहीं है।
मुझे प्रारंभकर्ताओं में एक्सेसर्स का उपयोग करने में कभी भी कोई समस्या नहीं आई है। हो सकता है कि यह सेटर्स और गेटर्स में आपके पास कितना जादू है - अगर एक्सेसर्स ने कुछ स्मार्ट किया है, तो आप प्रारंभकर्ता में उनका उपयोग करते समय परेशानी में पड़ सकते हैं।
अब जब मैं इसके बारे में सोचता हूं, तो मैं dealloc
में एक्सेसर्स का भी उपयोग करता हूं। फिर, बिना किसी समस्या के। अगर कोई ऑब्जेक्ट देख रहा है, तो उसे यह सुनिश्चित करना चाहिए कि ऑब्जेक्ट को पहले स्थान पर नहीं हटाया जाए।
तो, जब तक कि कोई और एक आकर्षक काउंटर-तर्क के साथ आता है, मुझे लगता है कि आप init
और dealloc
दोनों में एक्सेसर्स का उपयोग करने का प्रयास कर सकते हैं और देख सकते हैं कि यह आपके लिए कैसे काम करता है।
- 1. वर्ग विधि में स्वयं का उपयोग
- 2. सी # में यह एल्गोरिदम में पुनरावर्ती कार्यों का उपयोग करने के लिए एक अच्छा अभ्यास है?
- 3. स्वयं का उपयोग करना * * विधि
- 4. क्या यह ContentProvider में rawQuery का उपयोग करने के लिए एक अच्छा अभ्यास है?
- 5. क्या यह स्वयं प्रारंभिक वैध है?
- 6. क्या यह int के रूप में enum का उपयोग करने के लिए एक अच्छा अभ्यास है?
- 7. क्या सी ++ में size_t का उपयोग करना अच्छा अभ्यास है?
- 8. '!!' का उपयोग कर रहा है सी/सी ++ में अच्छा अभ्यास और क्या यह आम है?
- 9. मल्टीथ्रेडेड पर्यावरण में HttpClient का उपयोग करने का सर्वोत्तम अभ्यास
- 10. अपवादों का उपयोग कर प्रमाणीकरण/प्राधिकरण त्रुटियों को संभालने के लिए यह एक अच्छा अभ्यास है?
- 11. यह अच्छा अभ्यास संदर्भ
- 12. क्या यह विधि का पुन: उपयोग/साझा करने का एक अच्छा तरीका है?
- 13. क्या यह ऐप में यूनिकोड प्रतीकों या आकृतियों का उपयोग करने का बुरा अभ्यास है?
- 14. क्या यह एक ctor की प्रारंभिक सूची में अंकगणित का उपयोग करने के लिए स्थिर है?
- 15. अभ्यास में क्विकॉर्ट का उपयोग क्यों किया जाता है?
- 16. प्रारंभिक कोडिंग के दौरान अनुकूलन करने के लिए यह एक अच्छा अभ्यास है?
- 17. PHP - क्या यह txt फ़ाइल में MYSQL क्वेरी को कैश करने का अच्छा अभ्यास है?
- 18. पायथन और विधियों में 'स्वयं' का उपयोग
- 19. क्या यह नेस्टेड अपवादों का उपयोग करने के लिए एक अच्छा अभ्यास है?
- 20. सी # में निजी और स्थैतिक निजी तरीकों का नामकरण करने का सबसे अच्छा अभ्यास क्या है?
- 21. क्या यह एक लंबी प्रारंभिक विधि है?
- 22. क्या वेबसाइट के लिए अपने स्वयं के एपीआई का उपयोग करना अच्छा अभ्यास है?
- 23. mysql_free_result ($ परिणाम) का उपयोग करने के लिए यह एक अच्छा अभ्यास है?
- 24. क्या यह जगह पर std :: size_t का उपयोग करने के लिए अच्छा अभ्यास है?
- 25. ओओपी में, कक्षा के अंदर "यह" का उपयोग करने के संबंध में सबसे अच्छा अभ्यास क्या है?
- 26. जिरा परियोजनाओं में घटकों का उपयोग करने का सर्वोत्तम अभ्यास
- 27. क्या विरासत कार्यक्षमता को खाली करने का अच्छा अभ्यास है जिसका उपयोग नहीं किया जाएगा?
- 28. क्या जावा में जोर देने का अच्छा अभ्यास है?
- 29. Backbone.js में प्रारंभिक डेटा लोड करने का सबसे अच्छा तरीका क्या है?
- 30. प्रश्न में अच्छा अभ्यास है?
लोगों के पास उद्देश्य-सी के लिए सभी प्रकार के "नियम" हैं, वे आपके ऊपर फॉइस्ट करने का प्रयास करते हैं। यदि आप उनमें से 90% सुरक्षित रूप से अनदेखा कर सकते हैं। –