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