কোড কমপ্লিটের লেখক গ্লোবাল ডেটা লুকানোর কথা বলার অর্থ কী?


25

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

বিশ্বব্যাপী ডেটা লুকানো হচ্ছে। (...) আপনি প্রোগ্রামটি পরিবর্তন না করে ডেটার কাঠামো পরিবর্তন করতে পারেন।

ম্যাককনেল এর অর্থ কী? তিনি কি বিশ্বব্যাপী তথ্য পরিবর্তনের কথা বলছেন? যদি তা হয়, আপনি যখন সেই ডেটা পুনরুদ্ধার করার জন্য পদ্ধতিগুলি ব্যবহার করছেন তখন আপনাকে কেন আপনার প্রোগ্রামটি পরিবর্তন করতে হবে না? অথবা তিনি এখানে অন্য কিছু উল্লেখ করা হয়?

যদি কেউ আমার বিভ্রান্তি দূর করতে পারে তবে আমি প্রশংসা করব। আপনি যদি একটি উদাহরণও সরবরাহ করতে পারেন তবে এটি দুর্দান্ত হবে (উদাহরণগুলি দুর্দান্ত, আপনি জানেন)।

উত্তর:


44

লেখক বিশ্বব্যাপী ডেটা কাঠামোর কথা বলছেন , এবং কীভাবে সেই কাঠামোগুলি পরিবর্তন করে এটি যে কোড ব্যবহার করে তা তার উপর কীভাবে প্রভাব ফেলবে।

যদি বিশ্বব্যাপী ডেটা সরাসরি অ্যাক্সেসযোগ্য হয় তবে ডেটা কাঠামো পরিবর্তন করলে বোঝা যায় যে এটি ব্যবহার করে এমন সমস্ত কোড পরিবর্তন করতে হবে।

যদি বিশ্বব্যাপী ডেটা কেবল কোনও ইন্টারফেসের মাধ্যমে অ্যাক্সেসযোগ্য হয় (উদাহরণস্বরূপ ফাংশনগুলির একটি সেট), তবে কাঠামো পরিবর্তন করা কেবলমাত্র এই অ্যাকসেসরগুলি পরিবর্তন করে বোঝায়। বাকী কোডটি পরিবর্তন করতে হবে না।

সহজ উদাহরণ হিসাবে কোড হবে যা পূর্ণসংখ্যার অ্যারের সাথে শুরু হয় ( static int[]উদাহরণস্বরূপ কিছু জাভা শ্রেণিতে)। যদি সেই অ্যারেটি বিশ্বব্যাপী অ্যাক্সেসযোগ্য হয় তবে লোকেরা এটিকে অ্যারে সিনট্যাক্স (অর্থাত Global.cool_stuff[x] = 1;) দিয়ে ব্যবহার শুরু করবে । যদি কোনও কারণে আপনি সেই অ্যারেটিকে কোনও সংগ্রহের ধরণে (ভেক্টর, তালিকা, যাই হোক না কেন) বদলাতে চান, তবে আপনাকে এই কোডটি যে বিশ্বব্যাপী ডেটা ব্যবহার করে তা পরিবর্তন করতে হবে, যেহেতু এটি কমপক্ষে সিনট্যাক্টিক্যালি অবৈধ হয়ে গেছে।

যদি সেই ডেটা কেবল অ্যাক্সেসর / মিউটর ফাংশনগুলির একটি সেট (একটি ইন্টারফেসের "পিছনে লুকানো") এর মাধ্যমে অ্যাক্সেসযোগ্য হত, তবে আপনাকে কেবল সেই ছোট্ট ফাংশনগুলির সেটটি পরিবর্তন করতে হবে। কোডটি যা আসলে ডেটা ব্যবহার করে তা অপরিবর্তিত থাকতে পারে।

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