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