इनिशियलाइज़ (या init) के विपरीत क्या है? [बन्द है]


93

इस शब्द का प्रयोग विधि नाम के रूप में किया जाएगा। उपयोगकर्ता इंटरफ़ेस का एक हिस्सा छिपे (या हटाए जाने पर) को विधि कहा जाता है, और इसका उपयोग उन मूल्यों को डिफ़ॉल्ट और रीसेट करने के लिए किया जाता है जो किसी भी अधिक उपयोग नहीं किए जाएंगे।

संभावित नाम हैं: जारी करना, हटाना, निपटाना, स्पष्ट आदि।

जो आपको लगता है कि सबसे उपयुक्त है?


1
विनाश? (और अधिक अक्षरों की आवश्यकता है)
Deivin

30
यह नहीं देख सकता कि यह कैसे रचनात्मक नहीं है, नीचे दिए गए उत्तरों की एक त्वरित स्कैन से पता चलता है कि कई डेवलपर्स को काफी विलोम नहीं मिलते हैं। IMO विधि के नाम बहुत महत्वपूर्ण हैं और "इनिशियलाइज़" का कोई स्पष्ट एंटोनियम नहीं है, फिर भी एक सामान्य और उपयोगी शब्द है।
इरकैम

2
दुःख की बात है कि प्रश्न बंद होने के बाद से मैं कोई उत्तर नहीं जोड़ सकता (जैसा कि ईयरकैम ने कहा: यह रचनात्मक कैसे नहीं है?), इसलिए मैं यहां अपना उत्तर जोड़ूंगा। संक्षिप्त, टिप्पणी के अनुकूल रूप यह है: Initializeकेवल तभी उपयोग करें जब आपको एनटोनियम की आवश्यकता न हो ! मामले में आपको एक और क्रिया का चयन करने की आवश्यकता है (ज्यादातर समय एक अधिक वर्णनात्मक विकल्प होता है)। आगे के संदर्भ के लिए मैं GitHub में प्रोग्रामर के लिए अपने विलोम की सूची प्रदान कर रहा हूं ।
मैक्स Truxa

3
मुझे इसका उत्तर बहुत उपयोगी लगा जब मेरे पास बिल्कुल वही प्रश्न था। इसे बंद नहीं किया जाना चाहिए था।
इयान गोल्डबी

3
मैं सहमत हूं ... इस सवाल को बंद करना बिल्कुल भी मददगार नहीं है।
हराल

जवाबों:


79

मैं उपयोग करता हूं :

  • प्रारंभ ()
  • समाप्त ()

मुझे यह अधिक उपयुक्त लगता है:

  • इसे कोड में नहीं देखना कठिन है, क्योंकि यह दोनों लंबे शब्द हैं (मैं init का उपयोग नहीं करता)
  • यह सही है अंग्रेजी (AFAIK)
  • मेरे सिर में, अस्पष्टता से बचा जाता है। यह मैच से शुरू नहीं होता है (जो मैच खत्म होता है), स्टार्ट (जो मैच रोकते हैं), बनाएं (जो मैच को नष्ट करते हैं), सेटअप (जो अनसेट से मेल खाता है), लोड (जो अनलोड से मेल खाता है) आदि।

कुछ लोगों को यह स्वाद का सवाल लग सकता है।


6
के लिए +1 terminate()। मुझे लगता है कि यह आम तौर पर अस्पष्ट है और संभवतः उपयोग के मामलों में उचित रूप से लागू होता है।
बेन हॉकिंग

9
मैं "समाप्त" के साथ पूर्ण रूप से सहमत हूं, अन्य सभी सुझाव सटीक, प्रसिद्ध विलोम शब्दों के साथ हैं; नष्ट करना (बनाना), टियरडाउन (सेटअप), क्लोज़ (ओपन), रिलीज़ (अधिग्रहित), आदि हैरानी की बात यह है कि कितने डेवलपर इसे देखने में विफल रहते हैं।
इरकैम

Defenestrate। जब मैं उनके साथ किया जाता हूं तो मैं वस्तुओं के साथ ऐसा करता हूं। (लेकिन टर्मिनेट मेरी दूसरी पसंद होगी।)
Nick

3
@ निक्की प्रत्येक वस्तु विनाश पर खिड़कियों को फिर से स्थापित करने के लिए महंगी लगती है ...
क्लेम

जैसा कि ईयरकैम ने बताया: यह set up(जो मेल खाता है tear down) setup(अंग्रेजी भाषा में ऐसी कोई क्रिया नहीं है)।
मैक्स Truxa

25

मैं आमतौर पर या तो अंतिम रूप देता हूं, नष्ट करता हूं, या वस्तुओं के कार्य के आधार पर समाप्त करता हूं।

आपके द्वारा वर्णित मामले के लिए, अंतिम रूप वह है जो मैं अपनी योजना के आधार पर ले जाऊंगा।


दुर्भाग्य से, 'फाइनल' या तो 'इनिशियलाइज़' का पर्यायवाची शब्द हो सकता है, इसलिए मुझे लगता है कि यह सामान्य रूप से घटिया विकल्प होगा। 'नष्ट' और 'समाप्त' दावेदार हैं, हालांकि। "अंतिम या पूर्ण रूप में रखने के लिए" परिभाषा के लिए mw.com/dEDIA/finalize देखें। मैंने यह भी देखा है कि यह इस तरह से कोड में इस्तेमाल किया है। यानी, किसी वस्तु को अंतिम रूप देना उसके आरंभ में अंतिम चरण है। इसके विपरीत, जावा के ऑब्जेक्ट क्लास में finalize()ऑब्जेक्ट के लिए अधिक संदर्भ नहीं होने का संकेत है।
बेन हाकिंग

@BenHocking मुझे लगता है कि आप गलत तरीके से "अंतिम या पूर्ण रूप में रखने के लिए" ले रहे हैं। मेरे लिए, इसका मतलब है कि आप ऑब्जेक्ट के साथ किए गए हैं और सभी गुणों को साफ / रीसेट करने का समय है। यह ओपी कह रहा है कि वह क्या करना चाहता है। इसलिए मुझे लगता है कि परिभाषा मेरे मामले को साबित करती है।
ब्रायन दिशाव

इसके अलावा, कोई प्रतिक्रिया क्यों downvote पर? (मैं मान रहा हूं कि यह @BenHocking नहीं था क्योंकि उन्होंने संकेत नहीं दिया था कि वह नीच है)
ब्रायन दिशाव

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

14

मुझे releaseऐसी विधि पसंद है जो वस्तुओं और अन्य संसाधनों (जैसे विनाश के लिए तैयारी) के निपटान के लिए है। मैं resetएक ऐसी विधि चुनूंगा जो डिफ़ॉल्ट रूप से मानों को रीसेट करता है।

यदि "डिफ़ॉल्ट" स्थिति को किसी भी संसाधन की आवश्यकता नहीं होती है, तो इसके संचालन के उस हिस्से को resetकरने के लिए कॉल releaseकरने में सक्षम हो सकता है ।


6

close()

किसी ने अभी तक प्रस्ताव नहीं किया है। जावा 7 में एक नया "संसाधनों के साथ प्रयास" सुविधा है। एक वर्ग जो अपने आप साफ़ हो जाता है उसे java.lang.AutoCloseable को लागू करना पड़ता है जिसमें एक एकल क्लोज़ () विधि होती है। शटडाउन () या सफाई () भी अच्छा हो सकता है।

नहीं finalize()

अंतिम रूप () का अर्थ जावा में कचरा कलेक्टर के लिए कुछ विशिष्ट है, और इसके काम करने का तरीका थोड़ा अजीब है। मैं अंतिम रूप से दूर रहूंगा () जब तक आप नहीं चाहते कि जावा अंतिम रूप से क्या करता है ()।


2
आप जावा में अंतिम रूप देने () के बारे में एक वैध बिंदु बनाते हैं ... लेकिन ओपी ने कहीं भी यह संकेत नहीं दिया कि मैंने देखा है कि प्रश्न विशेष रूप से जावा के साथ काम कर रहा था, और "विधि के नाम" (उदाहरण के लिए, C ++) के साथ कोई अन्य OO भाषा नहीं।
एलीसो

C # में, Finalizeवर्गों के विनाशकारी उदाहरणों के लिए उपयोग किया जाता है।
ओलिवियर जैकोट-डेसकोम्बर्स 19

4

मुझे 'नष्ट' करना काफी पसंद है। जब तक आप वीडियो गेम या कुछ और नहीं लिख रहे हैं, तब तक यह स्पष्ट नहीं हो सकता।


4
मेरे दिमाग में, "नष्ट" को "बनाएं" के साथ जोड़ा जाता है।
एलीसो

4

मैं कहूंगा कि यह निर्भर करता है कि कार्रवाई वैकल्पिक है या आवश्यक (संसाधनों को लीक किए बिना), और अगर भाषा कंस्ट्रक्टर / विध्वंसक का समर्थन करती है। वैकल्पिक मामलों के लिए मैं उपयोग करता हूं:

  • स्पष्ट
  • रीसेट
  • छिपाना (UI संदर्भ में)

अन्य मामलों में जहां विपरीत कार्रवाई की आवश्यकता होती है (निर्माणकर्ताओं / विध्वंसक के बिना भाषाओं में, या जब विध्वंसक संसाधन जारी नहीं करता है), मैं उपयोग करता हूं:

  • init - फ़िनी
  • आरंभीकरण करना - deinitialize
  • रचाना - नष्ट करना

आपके मामले में मुझे लगता है कि मैं पसंद करूंगा hide। यह अभी भी मेमोरी / संसाधन जारी कर सकता है अगर यह चाहता है - महत्वपूर्ण बात यह है कि यह वैकल्पिक है, यानी कि विध्वंसक इसका ख्याल रखेगा यदि आपने नहीं किया।


3

मेरा पहला विचार आंसू था, लेकिन इसका उपयोग कई परीक्षण रूपरेखाओं में किया जाता है। अंतिम रूप और निपटान में समान समस्याएं हैं। रीसेट करें, या साफ करें दोनों अच्छे विकल्प की तरह लगते हैं। Reinitialize यह स्पष्ट करता है कि यह आरंभिक अवस्था में वापस चला जाता है, जो कि आप जिस राज्य में वापस जाते हैं वह प्रारंभिक अवस्था है।

बस यह सुनिश्चित करें कि आपका शब्द आपके वर्तमान संदर्भ में अतिभारित नहीं है।


मैं यह नहीं देखता कि यह अपने आप में एक समस्या कैसे है। दी गई, Finalizeऔर Dispose.NET कोड में हैं। इसके अलावा, मुझे स्थापित नामों का पुन: उपयोग करने में कोई समस्या नहीं दिखती है।
कोनराड रुडोल्फ

1
@KonradRudolph एक स्थापित नाम का पुन: उपयोग करना ठीक है, यदि अवधारणा बहुत अच्छी तरह से संरेखित है। मैंने जिन शब्दों को सूचीबद्ध किया है उनमें से कोई भी अच्छी तरह से संरेखित नहीं है कि मैं उसे क्या समझाता हूं। इसलिए यह अधिक भ्रामक होगा क्योंकि आप इस शब्द को सोचेंगे, मुझे पता है कि यह क्या करता है, और गलत है।
हस्ताक्षर करें

3

और इसका उपयोग उन मानों को डिफ़ॉल्ट और निपटान करने के लिए किया जाता है, जिनका उपयोग किसी भी अधिक नहीं किया जाएगा।

resetयदि आप चूक के लिए ऑब्जेक्ट रीसेट कर रहे हैं तो एक अच्छा शब्द लगता है। reinitializeउपयुक्त भी हो सकता है यदि इस वस्तु का उपयोग समान initializeहै। ऐसा लगता है कि यह विधि अन्य वस्तुओं को निपटान करेगी , न कि संदेश प्राप्त करने वाले को, जिस स्थिति में उपरोक्त दोनों में से कोई भी ठीक होना चाहिए। यदि आप वास्तव में इसके विपरीत कर रहे हैं initऔर रिसीवर को नष्ट होने के लिए तैयार कर रहे हैं, disposeतो यह एक अच्छा विकल्प होगा।


1

http://www.wordhippo.com/what-is/the-opposite-of/initialize.html

मैं अंतिम रूप देने जाऊंगा। हालाँकि, मुझे लगता है कि यह सटीक उपयोग के मामले पर थोड़ा निर्भर है: उदाहरण के लिए, यदि आप इसका उपयोग मुख्य रूप से संसाधनों को जारी करने के लिए करते हैं, तो कनेक्शन, फ़ाइलें फिर रिलीज़ करना अधिक सार्थक होगा।

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

Init बनाम (जो भी) की अवधारणा (निर्माता बनाम विध्वंसक) के समान है, या जावा को अंतिम रूप देती है।

( ध्यान दें : यदि भाषा की अवधारणा निर्माण और विनाश की वस्तुओं की है, तो इसकी init () का उपयोग करने की बहुत कम या कोई आवश्यकता नहीं है।


FYI करें: finalizeजावा में आरक्षित है।
बेसिल बोर्के

0

यदि जिस विधि को विधि कहा जा रहा है, उसका उपयोग बंद हो जाएगा, तो मैं सिर्फ मानक विध्वंसक का उपयोग करूंगा। हालांकि, ऐसा लगता नहीं है, हालांकि, इतना सामान्य होने के बजाय, एक बेहतर नाम शायद कुछ ऐसा है जैसे hide()कि वस्तु स्वयं छिपाई जा रही है या hideUserInterfacePart()यदि बनाई गई वस्तुओं को छिपाया जा रहा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.