ক্লোজার নিয়ে এত গুঞ্জন কেন? [বন্ধ]


9

বিকাশকারীদের মধ্যে ক্লোজার সম্পর্কে এত গুঞ্জন কেন? আমার কেরিয়ারে আমি ইচ্ছাকৃতভাবে কখনই সেগুলি ব্যবহার করি নি, যদিও তারা কী তা স্পষ্টভাবে বুঝতে পারি না।

ইউপিডি: কেবল স্পষ্ট করার জন্য। কেন ক্লোরেশন ধারণাটি এত দিন এত আলোচনায় পরিণত হয়েছিল তা নিয়ে প্রশ্ন।


3
আপনি কীভাবে এমন কিছু ব্যবহার করতে সক্ষম হবেন যা আপনি জানেন না এটি কী? সুতরাং মূলত আপনার প্রথমে জিজ্ঞাসা করা উচিত (বা বরং অনুসন্ধান করা) বন্ধগুলি কী।
স্টিভেন জিউরিস

1
আপনি উইকিপিডিয়া নিবন্ধটি পড়েছেন? এটি সম্পর্কে আপনি কী বুঝতে ব্যর্থ হয়েছেন?
কেভিন

2
আপনার কেরিয়ারটি কিসের উপর ভিত্তি করে?

4
এ কেমন প্রশ্ন? কি "গুঞ্জন"? কি বুঝলে না? পরিবর্তে আপনি কেন এই প্রশ্ন জিজ্ঞাসা করলেন না ?
অ্যারোনআউট

4
ওপিকে রক্ষার জন্য, ক্লোজারগুলি একটি পুরানো ধারণা তবে সম্প্রতি তারা শহরের আলোচনায় এসেছিল, তাই কথা বলার জন্য। এবং ধারণাটি যে কেউ আরও কিছু গণিত শিখেছে তার পক্ষে ধারণাটি খুব সহজ, আমি কেন বুঝতে পারছি না যে লোকেরা তাদের সম্পর্কে কেন এমনভাবে কথা বলে যে তারা বুঝতে খুব অসুবিধাজনক কিছু ছিল। সম্ভবত এটি তাদের নিজেকে আরও চৌকস দেখানোর একমাত্র উপায়: "দেখুন, আমি ক্লোজারগুলিকে আঁকছি যা আঁকানো খুব শক্ত, তাই আমি রক করব"।
কোয়ান্ট_দেব

উত্তর:


22

একটি ক্লোজার এমন কোড যা বিশ্বের স্মরণ করে যেখানে এটি এসেছে যেখানে এখনও ব্যবহারযোগ্য হয়ে ওঠে যেখানে এটি আনা হয়েছিল।

জাভাতে একটি বেনামি ফাংশন সংজ্ঞায়িত করা একটি উদাহরণ যা জানে যে এটি আপনারঅবজেক্টের অভ্যন্তরে রয়েছে এবং এর পদ্ধতি এবং কার্যগুলি পরিচালনা করতে পারে। এর পরে এই ফাংশনটি প্রদান করা হয় যেমন সুইং যেখানে এটি গভীর অভ্যন্তরে যায় যেমন শ্রোতা তবে তার শিকড়ে একটি লাইফলাইন রয়েছে।

এটি একটি খুব শক্তিশালী ধারণা কারণ এটি আপনাকে কোড সরবরাহ করতে দেয় যা - কোডটি ব্যবহার করে অপরিচিত - কোডের অন্যান্য অংশে ফিরে যেতে পারে।


1
হ্যাঁ. এটি অন্য পদ্ধতিতে কেবল প্রক্রিয়াই নয়, তবে ইনজেক্ট করার একটি উপায়। এটি অ্যালগোরিদমগুলি ডিজাইনের ক্ষেত্রে অত্যন্ত উচ্চতর ডিগ্রিটির জন্য মঞ্জুরি দেয়; আপনি টেম্পলেটেড পদ্ধতিগুলি ডিজাইন করতে পারেন যা স্টেটফুল সাববুটিনগুলির উপর নির্ভর করে, যা এটি সংকলন-সময় সম্পর্কে জানেন না। ক্ষয়ক্ষতিটি হ'ল সেই পদ্ধতির মূল উত্সের লিঙ্কটি, এবং এইভাবে, রাষ্ট্রটি গ্রাহক পদ্ধতি সম্পর্কে জেনেও ভেঙে যেতে পারে; এটি যখন ঘটে তখন আপনি হার্ড-টু-র رنটাইম ত্রুটিগুলি পান।
কিথস

1
হা হা, জাভা বেনামে ফাংশন ... মজার।
কনফিগারকারী

1
@ কনফিগুয়েটর, মজার নয়, একটি সত্য।


জাভা 7 এর ক্লোজার নেই।

6

বন্ধকরণগুলি মার্জিত উপায়ে বিভিন্ন সমস্যা সমাধানের জন্য কেবল কিছু। প্রকৃতপক্ষে, প্রোগ্রামিং ভাষাগুলিতে যেখানে কোনও ক্লোজার নেই, একই ধরণের কার্যকারিতা বাস্তবায়নের জন্য কৌশল তৈরি করা হয়।

জাভাতে কেবল সি ++ বা রান্নেবলের ফান্টারের কথা চিন্তা করুন। এগুলি কেবল এমন কৌশল যা ক্লোজারগুলির মতো কার্যকারিতা মঞ্জুর করে। কিছু ধরণের «ম্যানুয়াল ক্লোজারগুলি»

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

এখন যেহেতু ক্লোজারগুলি আরও বেশি প্রযুক্তিতে পাওয়া যায়, এটি বেশ সোজা হয়ে যায় যে আরও বেশি বেশি লোক তাদের আগ্রহী।

এখন, বন্ধ কি? এটি বেশ সহজ। একটি ক্লোজার হল এটি একটি ক্রিয়াকলাপ এবং এর মধ্যে এটি কার্যকর করার একটি প্রসঙ্গ। এটি অবজেক্ট হিসাবে কারসাজি করা হয়। কেন এটি দরকারী? বিদ্যমান কোডে নিজের কোড হুক করার জন্য এটি দরকারী।

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


আমি কি আপনাকে স্পষ্টভাবে বুঝতে পেরেছি? কিছু "ম্যানুয়াল ক্লোজার" রয়েছে (আসলে কোনও ক্লোজার নয়, তবে এমন কিছু যা তাদের আচরণের সাথে সাদৃশ্যপূর্ণ) এবং সেখানে কিছু "সত্যিকারের সমাপ্তি" রয়েছে?

বন্ধকরণ একটি ভাষা সক্ষমতা। কিছু ভাষার সেই ক্ষমতা নেই, তাই ভাষা আপনাকে সরবরাহ করে এমন সরঞ্জামগুলি ব্যবহার করে আপনি ম্যানুয়ালি ক্লোজার করেছেন। এগুলি সত্য যে না তা বলা খুব একটা আকর্ষণীয় বিতর্ক নয় IMHO।
ডেডালনিক্স

2
@ গ্রেসান, আপনি সর্বদা অ্যাসেম্বলিটি হুড়োহুড় করতে পারবেন এবং বোকলফুল গোটো বিবৃতি দিয়ে যা যা প্যাটার্ন চান তা নিজেই সম্পাদন করতে পারেন। একইভাবে আপনি ম্যানুয়ালি একটি "যখন" লুপটির সাথে "লুপ" করতে পারেন (সি ++ এ)। আরও উন্নততর, উচ্চতর স্তরগুলি সাধারণ জিনিসগুলি করার একটি মানক পদ্ধতি দেয়।
ফিলিপ

6

আমি অন্যদিন একটি মজাদার উক্তিটি দেখেছি, এটি ছিল "ক্লাসগুলি ফাংশন সহ ডেটা clos ক্লোজারগুলি ডেটা সহ ফাংশন" the

হ্যাঁ, এটি একটি ওভারসিম্প্লিফিকেশন, তবে এটি পয়েন্টটি পেতে সহায়তা করে।


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