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