আমি এই উদ্ধৃতিটি " দ্য জয় অফ ক্লোজুরে " তে পেয়েছি । 32, তবে কেউ গত সপ্তাহে রাতের খাবারের সময় আমাকে একই কথা বলেছিল এবং আমি এটি অন্যান্য জায়গাগুলিতেও শুনেছি:
[এ] অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের ডাউনসাইড হ'ল ফাংশন এবং ডেটার মধ্যকার আঁটসাঁটো মিলন।
আমি বুঝতে পারি যে কোনও অ্যাপ্লিকেশনে অপ্রয়োজনীয় সংযুক্তি কেন খারাপ। এছাড়াও আমি বলতে স্বাচ্ছন্দ্য বোধ করি যে পরিবর্তনীয় অবস্থা এবং উত্তরাধিকার এড়ানো উচিত, এমনকি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়েও। তবে আমি ক্লাসগুলিতে স্টিকিং ফাংশনগুলি সহজাত খারাপ কেন তা দেখতে ব্যর্থ fail
মানে, ক্লাসে কোনও ফাংশন যুক্ত করা জিমেইলে কোনও মেলকে ট্যাগ করার মতো, বা কোনও ফোল্ডারে কোনও ফাইল স্টিক করার মতো। এটি একটি সাংগঠনিক কৌশল যা আপনাকে এটি আবার খুঁজে পেতে সহায়তা করে। আপনি কিছু মানদণ্ড চয়ন করেন, তারপরে জিনিসগুলি একসাথে রাখুন। ওওপি করার আগে, আমাদের প্রোগ্রামগুলি ফাইলগুলিতে পদ্ধতিগুলির অনেক বড় বড় ব্যাগ ছিল। মানে আপনি কোথাও ফাংশন রাখতে হবে। কেন তাদের সংগঠিত করবেন না?
যদি এটি টাইপগুলিতে পর্দার আক্রমণ, তবে তারা কেবল কেন না বলে যে কোনও ফাংশনে ইনপুট এবং আউটপুটের প্রকারকে সীমাবদ্ধ রাখা ভুল? আমি এটির সাথে একমত হতে পারি কিনা তা সম্পর্কে আমি নিশ্চিত নই, তবে কমপক্ষে আমি যুক্তি প্রো এবং কন ধরণের সুরক্ষার সাথে পরিচিত। এটি আমার কাছে বেশিরভাগ পৃথক উদ্বেগের মতো মনে হচ্ছে।
অবশ্যই, কখনও কখনও লোকেরা এটি ভুল হয়ে যায় এবং ভুল শ্রেণিতে কার্যকারিতা রাখে। তবে অন্যান্য ভুলগুলির সাথে তুলনা করলে এটি খুব ছোট্ট অসুবিধার মতো বলে মনে হচ্ছে।
সুতরাং, ক্লোজারের নাম স্থান রয়েছে। ক্লিজেওরে কোনও নামস্থানে কোনও ফাংশন স্টিক করা থেকে ওওপিতে কোনও শ্রেণিতে কোনও ফাংশন স্টিক করা কীভাবে আলাদা এবং কেন এটি এত খারাপ? মনে রাখবেন, ক্লাসে ফাংশনগুলি অগত্যা কেবলমাত্র সেই শ্রেণীর সদস্যদের উপর পরিচালিত হয় না। Java.lang.StringBuilder দেখুন - এটি যে কোনও রেফারেন্স টাইপ, বা অটো-বক্সিংয়ের মাধ্যমে, যে কোনও প্রকারে পরিচালনা করে।
পিএস এই উক্তিটি এমন একটি বইয়ের উল্লেখ করেছে যা আমি পড়িনি: লেদাতে মাল্টিপ্রেডিজম প্রোগ্রামিং: টিমোথি বুড, 1995 ।