আমি মনে করি এমন কয়েকটি কারণ রয়েছে যা এখনও উল্লেখ করা হয়নি।
প্রথমত, কমপক্ষে "খাঁটি ওওপি" (যেমন, স্মার্টটাক) যেখানে সবকিছুই একটি অবজেক্ট, আপনাকে কোনও সংখ্যার (কেবলমাত্র একটি উদাহরণের জন্য) পরিবর্তে বুদ্ধিমান অবজেক্ট হিসাবে ভাবার জন্য আপনার মনকে বরং অপ্রাকৃত কনফিগারেশনে পরিণত করতে হবে শুধু একটি মান - বাস্তবে সাল থেকে 21
(উদাহরণস্বরূপ) সত্যিই হয় শুধু একটি মান। এটি বিশেষত সমস্যার মুখোমুখি হয় যখন আপনাকে বলা হয় যে ওওপির একটি বড় সুবিধা বাস্তবতাকে আরও নিবিড়ভাবে মডেলিং করে তবে আপনি একেবারে মৌলিক এবং স্পষ্ট অংশগুলির এলএসডি-অনুপ্রাণিত দৃষ্টিভঙ্গির মতো ভয়াবহ কিছু দেখায় তা শুরু করেন start বাস্তবতা।
দ্বিতীয়ত, ওওপি-র উত্তরাধিকার বেশিরভাগ মানুষের মানসিক মডেলগুলি খুব ঘনিষ্ঠভাবে অনুসরণ করে না। অধিকাংশ মানুষের জন্য, সবচেয়ে বিশেষভাবে কিছু classifying নেই না যে কোন জায়গায় একটি বর্গ অনুক্রমের যে কাজ তৈরি করতে প্রয়োজনীয় পরম নিয়ম পাসে আছে। বিশেষত, class D
অন্যটি থেকে উত্তরাধিকার সূত্রে তৈরির class B
অর্থ হ'ল class D
ভাগের বস্তুগুলি একেবারে, ইতিবাচকভাবে সমস্ত বৈশিষ্ট্য class B
। class D
এর নিজস্ব নতুন এবং বিভিন্ন বৈশিষ্ট্য যুক্ত করতে পারে তবে এর সমস্ত বৈশিষ্ট্য class B
অবশ্যই অক্ষত থাকবে।
বিপরীতে, যখন লোকেরা মানসিকভাবে জিনিসগুলিকে শ্রেণিবদ্ধ করে, তখন তারা সাধারণত অনেক আলগা মডেল অনুসরণ করে। একটি উদাহরণস্বরূপ, যদি কোনও ব্যক্তি কোনও শ্রেণীর অবজেক্টগুলির বিষয়ে কিছু নিয়ম করে তবে এটি বেশ সাধারণ বিষয় যে অন্য কোনও নিয়ম যতক্ষণ না অনুসরণ করা যায় ততক্ষণ প্রায় কোনও একটি নিয়ম ভেঙে যেতে পারে। এমনকি যে কয়েকটি নিয়ম সত্যিই ভাঙ্গা যায় না সেগুলি প্রায় যাইহোক কিছুটা হলেও "প্রসারিত" হতে পারে।
উদাহরণস্বরূপ, "গাড়ি" কে একটি শ্রেণি হিসাবে বিবেচনা করুন। এটি দেখতে যে বেশ সহজ সুবিশাল যা বেশীর ভাগ মানুষ "গাড়ী" হিসাবে মনে সংখ্যাগরিষ্ঠ চার চাকার আছে। বেশিরভাগ লোকেরা, কেবল তিনটি চাকাযুক্ত একটি গাড়ি (কমপক্ষে একটি চিত্র) দেখেছেন। সঠিক বয়সের কয়েকজন আমাদের 80 এর দশকের শুরুর দিকে (বা তাই) একটি রেস গাড়ি বা দুটি স্মরণ করে যার ছয়টি চাকা ছিল - ইত্যাদি and এটি আমাদের মূলত তিনটি পছন্দ সহ ছেড়ে যায়:
- গাড়ীর কয়টি চাকা রয়েছে সে সম্পর্কে কিছুই জোর দেবেন না - তবে এটি সর্বদা 4 হবে এবং এমন কোডটি অন্য সংখ্যার জন্য ভেঙে যাওয়ার সম্ভাব্য ধারণাটি নিয়ে যায়।
- দৃ cars়ভাবে বলুন যে সমস্ত গাড়ীর চার চাকা রয়েছে এবং কেবলমাত্র অন্যদের "গাড়ি নয়" হিসাবে শ্রেণিবদ্ধ করুন যদিও আমরা জানি তারা আসলেই।
- চাকা সংখ্যায় ভিন্নতার জন্য শ্রেণিকে নকশা করুন, ঠিক সেক্ষেত্রে, এই সম্ভাবনাকে কখনই প্রয়োজন হবে না, ব্যবহার করা হবে না বা সঠিকভাবে পরীক্ষা করা হবে না good
ওওপি সম্পর্কে শেখানো প্রায়শই বিশাল শ্রেণীবিন্যাস - যেমন বিটস এবং টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো করা পৃথিবীর সমস্ত পরিচিত জীবনের একটি বৃহত্তর শ্রেণিবিন্যাস বা সেই ক্রমের কোনও কিছুর উপর নির্ভর করে। এটি দুটি সমস্যা উত্থাপন করে: প্রথম এবং সর্বাগ্রে, এটি অনেক লোককে বিপুল পরিমাণে তথ্যের দিকে মনোনিবেশ করার দিকে পরিচালিত করে যা হাতের প্রশ্নের সম্পূর্ণই অপ্রাসঙ্গিক। এক পর্যায়ে আমি কুকুরের জাতের মডেল কীভাবে করা উচিত তার একটি দীর্ঘ আলোচনা আলোচনা করেছি এবং (উদাহরণস্বরূপ) "ক্ষুদ্রাকার পোডল" "পূর্ণ আকারের পোডল" থেকে উত্তরাধিকারী হওয়া উচিত, বা তদ্বিপরীত, বা একটি বিমূর্ত বেস থাকতে হবে কিনা "পুডল" "পূর্ণ-আকারের পোডল" এবং "ক্ষুদ্রাকৃতি পোডল" সহ "বর্গ, উভয়ই এর উত্তরাধিকার সূত্রে প্রাপ্ত। তারা সকলেই যে বিষয়টি এড়িয়ে যাচ্ছিল তা হ'ল অ্যাপ্লিকেশনটি কুকুরের লাইসেন্সের উপর নজর রাখার কথা বলেছিল,
দ্বিতীয়ত এবং প্রায় গুরুত্বপূর্ণভাবে, এটি হাতের কাজটির জন্য গুরুত্বপূর্ণ যে বৈশিষ্ট্যগুলিতে ফোকাস না করে আইটেমগুলির বৈশিষ্ট্যগুলিতে মনোনিবেশ করার দিকে পরিচালিত করে। এটা তোলে মডেলিং জিনিষ দিকে বাড়ে হিসাবে তারা, যেখানে সত্যিই কি দরকার সরলতম মডেল যে আমাদের চাহিদা পূরণ হবে বিল্ডিং করা হয়, এবং বিমূর্ততা ব্যবহার মাপসই (বেশির ভাগ সময়ে) প্রয়োজনীয় বিমূর্ততা আমরা তৈরি করেছি মাপসই উপ-ক্লাস।
অবশেষে, আমি আবারও বলব: আমরা ধীরে ধীরে বছরের পর বছর ধরে ডাটাবেসের দ্বারা নেওয়া একই পথ অনুসরণ করছি । প্রাথমিক ডাটাবেসগুলি শ্রেণিবদ্ধ মডেল অনুসরণ করেছিল ical ডেটাতে একচেটিয়াভাবে ফোকাস করা বাদে, এটি একক উত্তরাধিকার। অল্প সময়ের জন্য, কয়েকটি ডাটাবেস নেটওয়ার্ক মডেলকে অনুসরণ করেছে - একাধিক উত্তরাধিকারের সাথে মূলত অভিন্ন (এবং এই কোণ থেকে দেখা হয়েছে, একাধিক ইন্টারফেসগুলি লক্ষ্য করার জন্য যত্ন নেওয়ার জন্য একাধিক বেস শ্রেণীর চেয়ে যথেষ্ট আলাদা নয়)।
অনেক আগে, তবে, ডাটাবেসগুলি মূলত রিলেশনাল মডেলটিতে রূপান্তরিত হয় (এবং এটি এসকিউএল না হলেও, বিমূর্ততার এই স্তরে বর্তমান "নোএসকিউএল" ডাটাবেসগুলিও আপেক্ষিক)। রিলেশনাল মডেলের সুবিধাগুলি যথেষ্ট পরিচিত যে আমি তাদের এখানে পুনরাবৃত্তি করতে বিরক্ত করব না। আমি কেবল উল্লেখ করব যে প্রোগ্রামিংয়ে আমরা যে রিলেশনাল মডেলের নিকটতম অ্যানালগটি পাই তা হল জেনেরিক প্রোগ্রামিং (এবং দুঃখিত, তবে নাম থাকা সত্ত্বেও, জাভা জেনেরিকস, উদাহরণস্বরূপ, সত্যই যোগ্যতা অর্জন করবেন না, যদিও তারা একটি ছোট পদক্ষেপ ডান দিক).