ইনিশিয়ালাইজ (বা init) এর বিপরীতটি কী? [বন্ধ]


93

শব্দটি একটি পদ্ধতির নাম হিসাবে ব্যবহৃত হবে। ব্যবহারকারীর ইন্টারফেসের কোনও অংশ লুকানো (বা সরানো) হয়ে গেলে এই পদ্ধতিটি ডাকা হয় এবং এটি ডিফল্টতে মানগুলি পুনরায় সেট করতে এবং বস্তুগুলি আর ব্যবহার করা হবে না সেগুলি নিষ্পত্তি করতে ব্যবহৃত হয়।

সম্ভাব্য নামগুলি হ'ল: মুক্তি, অপসারণ, নিষ্পত্তি, পরিষ্কার ইত্যাদি

আপনি কোনটি সবচেয়ে উপযুক্ত বলে মনে করেন?


1
ধ্বংস? (আরও বর্ণের প্রয়োজন)
দেইউইন

30
এটি কীভাবে গঠনমূলক নয় তা দেখতে পাচ্ছেন না, নীচের উত্তরগুলির একটি দ্রুত স্ক্যান দেখায় যে অনেক বিকাশকারী বেশিরভাগ শব্দ প্রতিশব্দ পান না। আইএমও পদ্ধতির নামগুলি অত্যন্ত গুরুত্বপূর্ণ এবং "ইনিশিয়ালাইজ" এর কোনও স্পষ্ট বিদ্বেষ নেই, তবুও এটি একটি সাধারণ এবং দরকারী শব্দ।
ইয়ারক্যাম

2
দুর্ভাগ্যক্রমে প্রশ্নটি বন্ধ হওয়ার পরে আমি আর কোনও উত্তর যুক্ত করতে পারছি না (যেমন কানকাম বলেছেন: এটি কীভাবে গঠনমূলক নয়?), তাই আমি এখানে আমার উত্তর যুক্ত করব। সংক্ষিপ্ত, মন্তব্য-বান্ধব ফর্মটি হ'ল: আপনার Initializeযদি কোনও প্রতিশব্দ প্রয়োজন না হয় তবেই ব্যবহার করুন ! আপনার যদি একটি প্রয়োজন হয় অন্য ক্রিয়া নির্বাচন করুন (বেশিরভাগ সময় আরও বর্ণনামূলক বিকল্প থাকে)। আরও রেফারেন্সের জন্য আমি গিটহাবের প্রোগ্রামারদের জন্য আমার প্রতিশব্দগুলির তালিকা সরবরাহ করছি ।
ম্যাক্স ট্রুক্সা

3
আমার ঠিক একই প্রশ্নটি হয়েছিল তখন আমি এর উত্তরগুলি খুব সহায়ক পেয়েছি। এটি বন্ধ করা উচিত ছিল না।
ইয়ান গোল্ডবি 13'15

3
আমি সম্মত ... এই প্রশ্নটি বন্ধ করা মোটেই সহায়ক নয়।
হেরাল্ড

উত্তর:


79

আমি ব্যবহার করি :

  • আরম্ভ ()
  • বিনষ্ট ()

আমি এটি আরও উপযুক্ত বলে মনে করি:

  • কোডে এটি না পাওয়া শক্ত, কারণ এটি উভয় দীর্ঘ শব্দ (আমি init ব্যবহার করি না)
  • এটি সঠিক ইংরেজি (আফাইক)
  • আমার মাথায়, অবসন্ন হওয়া অস্পষ্টতা এড়ায়। এটি আর্টের সাথে মেলে না (যা শেষ হয়), শুরু (কোনটি বন্ধ হয়ে যায়), তৈরি (যা ধ্বংসের সাথে মেলে), সেটআপ (যা আনসেটের সাথে মেলে), লোড (যা আনলোডের সাথে মেলে) ইত্যাদি

কিছু লোক এটি স্বাদের একটি প্রশ্ন যদিও খুঁজে পেতে পারে।


6
জন্য +1 terminate()। আমি মনে করি এটি সাধারণভাবে দ্ব্যর্থহীন এবং সম্ভবত ব্যবহারের ক্ষেত্রে এটি যুক্তিসঙ্গতভাবে প্রযোজ্য।
বেন হকিং

9
আমি "সমাপ্ত" এর সাথে সম্পূর্ণ চুক্তিতে রয়েছি অন্য সমস্ত পরামর্শ হুবহু, সুপরিচিত প্রতিবিযুক্ত শব্দগুলির জন্য; ধ্বংস (তৈরি), টিয়ারডাউন (সেটআপ), বন্ধ (উন্মুক্ত), রিলিজ (অর্জন) ইত্যাদি ইত্যাদি অবাক করে কত বিকাশকারী এটি দেখতে ব্যর্থ হন।
earcam

Defenestrate। আমি যখন তাদের সাথে সম্পন্ন করি তখন অবজেক্টগুলির সাথে আমি এটাই করি। (তবে টার্মিনেটটি আমার দ্বিতীয় পছন্দ হবে))
নিকি

3
@ নিকিকে প্রতিটি বস্তু ধ্বংসের সময় উইন্ডোজ পুনরায় ইনস্টল করা ব্যয়বহুল দেখাচ্ছে ...
ক্লাইম

যেমন ইয়ার ক্যামাম উল্লেখ করেছে: এটি set up(যা মিলছে tear down) নয় setup(ইংরেজি ভাষায় এরকম ক্রিয়াপদ নেই)।
ম্যাক্স ট্রুক্স

25

আমি সাধারণত চূড়ান্তকরণ, ধ্বংস, বা সমাপ্তি অবজেক্টগুলির কার্যকারিতাটির উপর নির্ভর করে যাই go

আপনি যে কেসটি বর্ণনা করছেন তার জন্য, ফাইনালাইজ হ'ল আমি আমার স্কিমের উপর ভিত্তি করে যাব।


দুর্ভাগ্যক্রমে, 'ফাইনালাইজ' হ'ল হয় 'ইনিশিয়াল' এর প্রতিশব্দ বা একটি প্রতিশব্দ হতে পারে, তাই আমার ধারণা এটি সাধারণভাবে একটি দুর্বল পছন্দ হবে। তবে 'ধ্বংস' এবং 'সমাপ্তি' প্রতিযোগী। "চূড়ান্ত বা সমাপ্ত ফর্ম রাখার জন্য" এই উক্তিটি সংজ্ঞার জন্য এমডব্লু.ডে / অভিধান / ফাইনালাইজ দেখুন। এমনকি আমি কোডেও এটি ব্যবহার করে দেখেছি। অর্থাৎ, কোনও বস্তুর চূড়ান্তকরণ এটির আরম্ভের শেষ ধাপ। বিপরীতে, জাভার অবজেক্ট ক্লাসে একটি finalize()পদ্ধতি রয়েছে যা নির্দেশ করে যে কোনও বস্তুর সাথে আর কোনও উল্লেখ নেই।
বেন হকিং

@ বেনহকিং আমি মনে করি আপনি "চূড়ান্ত বা সমাপ্ত ফর্ম স্থাপন" ভুল পথে নিচ্ছেন। আমার কাছে, এর অর্থ হল যে আপনি অবজেক্টটি দিয়ে কাজ করেছেন এবং সমস্ত সম্পত্তি পরিষ্কার / পুনরায় সেট করার সময় time এটিই ওপি বলছেন তিনি করতে চান। সুতরাং আমি মনে করি যে সংজ্ঞাটি আমার কেসকে প্রমাণ করে।
ব্রায়ান দিশা

এছাড়াও, ডাউনওয়েটে কেন কোনও প্রতিক্রিয়া? (আমি ধরে নিচ্ছি এটি @ বেনহকিং নয়, যেহেতু তিনি বোঝাচ্ছেন না যে তিনি
নিম্নচিকিত্সক

ক) আপনি ঠিক বলেছেন যে আমি ভোটকে নামি নি। আপনার পরামর্শটি যুক্তিসঙ্গত এবং আমি এই আলোচনাটি দরকারী বলে মনে করি। খ) আমি চূড়ান্ত করতে দেখেছি () ঠিক যে অর্থে আমি নির্দেশ করেছি সেভাবে ব্যবহৃত হয়েছে। উদাহরণস্বরূপ, ডেলাউনে ত্রিভুজায়নকরণ গণনা করা একটি শ্রেণিতে, সমস্ত পয়েন্ট যুক্ত হওয়ার পরে, ফলাফলটি ব্যবহারের আগে চূড়ান্তকরণ () কে কিছু অতিরিক্ত গণনা করার জন্য বলা হয়েছিল। সেক্ষেত্রে, এটি ইঙ্গিত করেছিল যে অবজেক্টটি আর পরিবর্তনের জন্য খোলা ছিল না, তবে এটি ত্রিভুজাকারীকরণের ফলাফল পাওয়ার জন্য এখনও ব্যবহারের জন্য উপলব্ধ ছিল।
বেন হকিং

14

আমি এমন releaseএকটি পদ্ধতির জন্য পছন্দ করি যা বস্তু এবং অন্যান্য সংস্থানগুলি নিষ্পত্তি করে (যেমন ধ্বংসের প্রস্তুতি হিসাবে)। আমি এমন resetএকটি পদ্ধতির জন্য বেছে নেব যা মানগুলিকে ডিফল্টতে পুনরায় সেট করে।

যদি "ডিফল্ট" রাষ্ট্রের কোনও সংস্থান দরকার হয় না, তবে তার ক্রিয়াকলাপের সেই অংশটি সম্পাদন resetকরতে কল করতে সক্ষম হতে পারে release


6

close()

এখনও কেউ নিকটস্থ () প্রস্তাব করেনি। জাভা 7 এর একটি নতুন "সংস্থান সহ চেষ্টা" বৈশিষ্ট্য রয়েছে। যে ক্লাসটি স্বয়ংক্রিয়ভাবে পরিষ্কার হয়ে যায় সেটিকে java.lang.AutoCloseable প্রয়োগ করতে হবে যার একক ঘনিষ্ঠ () পদ্ধতি রয়েছে। শাটডাউন () বা ক্লিনআপ () খুব ভাল হতে পারে।

না finalize()

চূড়ান্তকরণ () এর অর্থ জাভাতে আবর্জনা সংগ্রাহকের কাছে নির্দিষ্ট কিছু এবং এটি যেভাবে কাজ করে তা কিছুটা অদ্ভুত। আপনি চূড়ান্তকরণ () থেকে দূরে থাকবেন যদি না আপনি জাভা চূড়ান্তকরণ () দিয়ে যা করেন ঠিক তেমন চান।


2
আপনি জাভাতে () চূড়ান্তকরণ সম্পর্কে একটি বৈধ পয়েন্ট দিয়েছেন ... তবে ওপি কোথাও নির্দেশ করে নি যে আমি দেখেছি যে প্রশ্নটি বিশেষভাবে জাভা নিয়ে কাজ করছে, এবং "পদ্ধতির নাম" (যেমন, সি ++) সহ অন্য কোনও ওও ভাষা নয়।
এলিস্কো

সি # তে, Finalizeক্লাসগুলির উদাহরণ নষ্ট করতে ব্যবহৃত হয়।
অলিভিয়ার জ্যাকট-ডেসকোম্বেস

4

আমি বেশ 'ধ্বংস' পছন্দ করি। আপনি কোনও ভিডিও গেম বা কিছু না লিখলে পরিষ্কার হওয়া যায় না।


4
আমার মনে, "ধ্বংস" "তৈরি" এর সাথে জুটিবদ্ধ।
এলিস্কো

4

আমি বলব এটি ক্রিয়াটি alচ্ছিক বা প্রয়োজনীয় (সম্পদ ফাঁস ছাড়াই) এবং ভাষা যদি নির্মাতাদের / ধ্বংসকারীদের সমর্থন করে তবে এটি নির্ভর করে। Useচ্ছিক ক্ষেত্রে আমি ব্যবহার করি:

  • স্পষ্ট
  • রিসেট
  • লুকান (ইউআই প্রসঙ্গে)

অন্যান্য ক্ষেত্রে যেখানে বিপরীত ক্রিয়াটি প্রয়োজন (ভাষাগুলি নির্মাণকারী / ডেস্ট্রাক্টর ছাড়া, বা যখন ডেস্ট্রাক্টর রিসোর্সটি প্রকাশ করে না), আমি ব্যবহার করি:

  • init - ফিনি
  • ইনিশিয়াল করা - ডিনিটায়ালাইজ করা
  • তৈরি - ধ্বংস

আপনার ক্ষেত্রে আমি মনে করি আমি পছন্দ করব hide। এটি চাইলে মেমোরি / সংস্থানগুলি ছেড়ে দিতে পারে - গুরুত্বপূর্ণ জিনিসটি এটি alচ্ছিক, অর্থাত্‍ যদি আপনি এটি না করেন তবে ডেস্ট্রাক্টর এটির যত্ন নেবেন।


3

আমার প্রথম চিন্তাটি ছিঁড়ে গেছে, তবে এটি অনেক পরীক্ষার ফ্রেমওয়ার্কে ব্যবহৃত হয়। চূড়ান্তকরণ এবং নিষ্পত্তি একই ধরণের সমস্যা আছে। রিসেট করুন, বা পরিষ্কার উভয়ই ভাল পছন্দ মত মনে হচ্ছে। পুনরায় বিতরণ এটি পরিষ্কার করে দেয় এটি আরম্ভ করা রাজ্যে ফিরে যায়, আপনি যে অবস্থায় ফিরে যাবেন তা যদি প্রাথমিক অবস্থায় থাকে তবে ভাল হবে would

কেবলমাত্র আপনার শব্দটি আপনার বর্তমান প্রসঙ্গে ওভারলোড করা হয়নি তা নিশ্চিত করুন।


আমি দেখতে পাচ্ছি না কীভাবে এটি নিজের মধ্যে সমস্যা। মঞ্জুর, Finalizeএবং Dispose.NET কোডে বাইরে। তা ছাড়া, আমি প্রতিষ্ঠিত নাম পুনরায় ব্যবহার করতে সমস্যা দেখছি না।
কনরাড রুডলফ

1
@ কনরাড রুডল্ফ একটি প্রতিষ্ঠিত নামের পুনরায় ব্যবহার ঠিক আছে, যদি ধারণাগুলি খুব ভালভাবে সারিবদ্ধ হয়। আমি তালিকাভুক্ত শব্দের মধ্যে কোনওটিই তাকে বর্ণনা করতে যা বুঝে তার সাথে এটি খুব ভালভাবে সাজায় না। সুতরাং এটি আরও বিভ্রান্তিকর হবে যেহেতু আপনি এই শব্দটি ভাবছেন দেখবেন, আমি জানি এটি কী করে এবং ভুল হতে পারে।
সাইন ইন করুন

3

এবং এটি ডিফল্টতে মানগুলি পুনরায় সেট করতে এবং অবজেক্টগুলি নিষ্পত্তি করতে ব্যবহৃত হয় যা আর ব্যবহার করা হবে না।

resetযদি আপনি অবজেক্টটিকে ডিফল্টে রিসেট করে থাকেন তবে একটি ভাল শব্দ মনে হচ্ছে। reinitializeএই বিষয়বস্তুর ব্যবহারের সাথে মিল থাকলে এটিও উপযুক্ত হতে initializeপারে। মনে হচ্ছে এই পদ্ধতিটি অন্য অবজেক্টগুলিকে নিষ্পত্তি করবে , বার্তাটি গ্রহণকারী নয়, তবে উপরের যে কোনওটি ভাল হওয়া উচিত। যদি আপনি সত্যিই এর বিপরীতে কাজ করে থাকেন initএবং রিসিভারটি নষ্ট হওয়ার জন্য প্রস্তুত করছেন , disposeতবে এটি একটি ভাল পছন্দ হবে।


1

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

আমি চূড়ান্ত সঙ্গে যেতে হবে। তবে আমি মনে করি এটি সঠিক ব্যবহারের ক্ষেত্রে কিছুটা নির্ভরশীল: উদাহরণস্বরূপ আপনি যদি এটি প্রধানত সংস্থানগুলি, সংযোগগুলি, ফাইলগুলি প্রকাশের জন্য ব্যবহার করেন তবে মুক্তিটি আরও অর্থবহ হবে।

আপনি যদি সাধারণ ব্যবহারের জন্য ধারণাটি খুঁজছেন বা মানদণ্ডের সন্ধান করছেন তবে আমি কিছুটা কম অর্থবহ, এমন কিছু বেছে নেব যার কোনও বিশেষ অর্থ প্রকাশের মতো নয় বা মুছে ফেলা উচিত।

থিম বনাম (যাই হোক না কেন) ধারণাটি (কনস্ট্রাক্টর বনাম ডেস্ট্রাক্টর) এর মতো, বা জাভাতে চূড়ান্ত হয়।

( দ্রষ্টব্য : ভাষাতে যদি ধারণাটি অবজেক্টগুলি তৈরি করে এবং ধ্বংস করে থাকে তবে এর অল্প ব্যবহার বা উদ্যোগের প্রয়োজন নেই))


এফওয়াইআই: finalizeজাভাতে সংরক্ষিত।
বাসিল বাউরেক

0

পদ্ধতিটিতে আহ্বান করা অবজেক্টটি যদি ব্যবহার করা বন্ধ হয়ে যায় তবে আমি কেবলমাত্র স্ট্যান্ডার্ড ডিস্ট্রাক্টর ব্যবহার করব। এটি মামলার মতো শোনাচ্ছে না, তবে খুব জেনেরিক হওয়ার চেয়ে আরও ভাল নাম সম্ভবত এমন কিছু যা hide()যদি বস্তুটি নিজেই লুকিয়ে থাকে বা hideUserInterfacePart()রচিত বস্তুগুলি লুকিয়ে রাখা হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.