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