হ্যাডলি উইকহাম (আরস্টুডিওতে চিফ সায়েন্টিস্ট) দ্বারা "অ্যাডভান্সড আর, ২ য় সংস্করণ" (সিআরসি প্রেস, 2019) অনুসারে অসংখ্য আর অবজেক্ট সিস্টেমের আপডেটেড দ্রুত গতি রক্ষার কথা এখানে রয়েছে , যার এখানে ওয়েব উপস্থাপনা রয়েছে , অবজেক্ট সম্পর্কে অধ্যায়ের ভিত্তিতে ওরিয়েন্টেড প্রোগ্রামিং ।
2015 থেকে প্রথম সংস্করণ একটি ওয়েব উপস্থাপনা করেছেন এখানে OO যেমন পণ্য সংশ্লিষ্ট অধ্যায়ে সঙ্গে, এখানে ।
ওও সিস্টেমগুলিতে পন্থা
হ্যাডলি ওও প্রোগ্রামিংয়ের দুটি স্বতন্ত্র পদ্ধতির পার্থক্য করার জন্য নিম্নলিখিতটি সংজ্ঞায়িত করেছেন:
কার্যকরী ওওপি : পদ্ধতিগুলি (কলযোগ্য কোড টুকরা) জেনেরিক ফাংশনের অন্তর্ভুক্ত (জাভা / সি # জেনেরিক পদ্ধতিগুলির সাথে বিভ্রান্ত হওয়ার দরকার নেই )। একটি বৈশ্বিক অনুসন্ধান সারণীতে অবস্থিত হিসাবে পদ্ধতিগুলি সম্পর্কে ভাবুন। সঞ্চালনের পদ্ধতিটি রানটাইম সিস্টেমে ফাংশনের নাম এবং সেই ফাংশনে পাস হওয়া এক বা একাধিক আর্গুমেন্টের ধরণের (বা অবজেক্ট শ্রেণি) ভিত্তিতে পাওয়া যায় (এটিকে "পদ্ধতি প্রেরণ" বলা হয়)। সিনট্যাক্স প্রজ্ঞাময়, পদ্ধতি কল সাধারণ ফাংশান কল মত চেহারা হতে পারে: myfunc(object, arg1, arg2)
। এই কলটি জোড় ("মাইফাঙ্ক", টাইফফ (অবজেক্ট)) বা সম্ভবত ("মাইফাঙ্ক", টাইপফ (অবজেক্ট), টাইপফ (আরজি 1), টাইফফ (আরজি 2) এর সাথে সম্পর্কিত পদ্ধতির সন্ধানের জন্য রানটাইমকে নেতৃত্ব দেবেযদি ভাষা এটি সমর্থন করে। আর এর এস 3 এ, জেনেরিক ফাংশনের পুরো নামটি (ফাংশন-নাম, শ্রেণি) জুটি দেয়। উদাহরণস্বরূপ: mean.Date
তারিখগুলির গড় গণনা করার পদ্ধতি। methods("mean")
ফাংশন নাম সহ জেনেরিক পদ্ধতিগুলি তালিকাভুক্ত করার চেষ্টা করুন mean
। কার্যকরী ওওপি পদ্ধতির উদাহরণ ও ও অগ্রগামী স্মার্টটাক , কমন লিস্প অবজেক্ট সিস্টেম এবং জুলিয়াতে পাওয়া যায় । হ্যাডলি নোট করেছেন যে "আর এর তুলনায় জুলিয়ার বাস্তবায়ন পুরোপুরি বিকাশিত এবং অত্যন্ত পারফরম্যান্ট।"
এনক্যাপসুলেটেড ওওপি : পদ্ধতিগুলি অবজেক্ট বা ক্লাসের অন্তর্ভুক্ত এবং পদ্ধতি কলগুলি সাধারণত দেখায় object.method(arg1, arg2)
। এটিকে এনক্যাপসুলেটেড বলা হয় কারণ অবজেক্টটি ডেটা (ক্ষেত্র) এবং আচরণ (পদ্ধতি) উভয়কেই এনপ্যাপুলেট করে । অবজেক্টের সাথে সংযুক্ত একটি লুকিং টেবিল বা অবজেক্টের শ্রেণির বিবরণ হিসাবে পদ্ধতিটি ভাবুন। রানটাইম পদ্ধতিটির নাম এবং সম্ভবত এক বা একাধিক আর্গুমেন্টের ধরণের ভিত্তিতে পদ্ধতিটিকে দেখায়। সি ++, জাভা, সি # এর মতো "জনপ্রিয়" ওও ভাষাগুলিতে এটি পাওয়া যায়।
উভয় ক্ষেত্রেই যদি উত্তরাধিকার সমর্থিত হয় (এটি সম্ভবত), রানটাইমটি ক্লাস হায়ারার্কিকে উপরের দিকে অতিক্রম করতে পারে যতক্ষণ না এটি কল লুকিং কীটির সাথে কোনও মিল খুঁজে পায়।
কোনও R বিষয়বস্তু কোন সিস্টেমের অন্তর্গত তা কীভাবে সন্ধান করা যায়
library(sloop) # formerly, "pryr"
otype(mtcars)
#> [1] "S3"
আর অবজেক্ট সিস্টেম
এস 3
- কার্যকরী ওওপি পদ্ধতির।
- হ্যাডলি অনুসারে সর্বাধিক গুরুত্বপূর্ণ সিস্টেম।
- সর্বাধিক সাধারণ। আর দ্বারা ব্যবহৃত প্রথম ওও সিস্টেম
- বেস আর এর সাথে আসে, পুরো আর-এর জুড়ে ব্যবহৃত হয়
- গ্যারান্টি প্রয়োগের পরিবর্তে সম্মেলনের উপর নির্ভর করে।
- দেখুন চেম্বারস, জন এম, এবং ট্রেভর জে Hastie। 1992. "এস মধ্যে পরিসংখ্যানের মডেলগুলি" ওয়েডসওয়ার্থ এবং ব্রুকস / কোল অ্যাডভান্সড বুকস অ্যান্ড সফটওয়্যার।
- ইন বিশদ "উন্নত আর, 2nd সংস্করণ" এখানে ।
এস 4
- কার্যকরী ওওপি পদ্ধতির।
- হ্যাডলি অনুসারে তৃতীয় গুরুত্বপূর্ণ সিস্টেম।
- এস 3 এর পুনর্লিখন, সুতরাং এস 3 এর অনুরূপ, তবে আরও আনুষ্ঠানিক এবং আরও কঠোর: এটি আপনাকে প্রোগ্রামের নকশা সম্পর্কে সাবধানতার সাথে চিন্তা করতে বাধ্য করে। বৃহত সিস্টেমগুলি তৈরির জন্য উপযুক্ত (যেমন বায়োকন্ডাক্টর প্রকল্প)।
- বেস "পদ্ধতি" প্যাকেজে কার্যকর করা হয়েছে।
- দেখুন: চেম্বারস, জন এম 1998. "প্রোগ্রামিং উইথ ডেটা: এস ল্যাঙ্গুয়েজ এ গাইড"। স্প্রিঙ্গের।
- ইন বিশদ "উন্নত আর, 2nd সংস্করণ" এখানে ।
আরসি ওরফে "রেফারেন্স ক্লাস"
- এনকেপসুলেটেড ওওপি পদ্ধতির।
- বেস আর নিয়ে আসে
- এস 4 এর উপর ভিত্তি করে।
- আরসি অবজেক্টস হ'ল বিশেষ ধরণের এস 4 অবজেক্ট যা "পরিবর্তনযোগ্য "ও হয় are অর্থাত্ আর-এর স্বাভাবিক কপিরাইট অন-মডিফাইটি শব্দার্থক ব্যবহারের পরিবর্তে সেগুলিকে স্থানে পরিবর্তন করা যেতে পারে। নোট করুন যে পরিবর্তনীয় স্থিতি সম্পর্কে বিতর্ক করা শক্ত এবং কুৎসিত বাগের উত্স তবে নির্দিষ্ট অ্যাপ্লিকেশনগুলিতে আরও দক্ষ কোড তৈরি করতে পারে।
R6
- এনকেপসুলেটেড ওওপি পদ্ধতির।
- হ্যাডলি অনুসারে দ্বিতীয় সবচেয়ে গুরুত্বপূর্ণ সিস্টেম।
- আর 6 প্যাকেজে পাওয়া যাবে (এর সাথে ইনস্টল করুন
library(R6)
)
- আরসির মতো, তবে হালকা এবং আরও দ্রুত: এটি এস 4 বা পদ্ধতি প্যাকেজের উপর নির্ভর করে না । আর পরিবেশের উপরে নির্মিত। এছাড়াও আছে:
- সরকারী এবং ব্যক্তিগত পদ্ধতি
- সক্রিয় বাঁধাই (ক্ষেত্রগুলি, এটি যখন অ্যাক্সেস করা হয়, আসলে কোনও পদ্ধতিতে কল করে)
- বর্গ উত্তরাধিকার যা প্যাকেজ জুড়ে কাজ করে
- উভয় শ্রেণীর পদ্ধতি (কোড যে বর্গ জন্যে এবং মাধ্যমে একটি দৃষ্টান্ত অ্যাক্সেস করতে পারেন
self
, private
, super
) এবং সদস্য ফাংশন (ক্ষেত্র নির্ধারিত ফাংশন, কিন্তু যা পদ্ধতি নয়, শুধু ফাংশন)
- আর এর "কপিরাইট অন-মডিফাই" শব্দার্থবিজ্ঞানের হাত থেকে বাঁচার একটি মানক উপায় সরবরাহ করে
- প্যাকেজ সাইটটি দেখুন: "আর 6: আর এর জন্য এনক্যাপসুলেটেড অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং" ।
- ইন বিশদ "উন্নত আর, 2nd সংস্করণ" এখানে ।
অন্যান্য
সেখানে অন্যদের মতো R.oo (রেসিন অনুরূপ), প্রোটো (প্রোটোটাইপ-ভিত্তিক, জাভাস্ক্রিপ্ট মনে) এবং Mutatr । তবে, "অ্যাডভান্সড আর" বলেছেন:
আর 6 ছাড়াও, যা বহুল ব্যবহৃত হয়, এই সিস্টেমগুলি মূলত তাত্ত্বিক আগ্রহের। তাদের ক্ষমতা আছে তবে কয়েকটি আর ব্যবহারকারী তাদের এগুলি জানেন এবং বুঝতে পারেন, তাই অন্যদের পক্ষে আপনার কোডটি পড়া এবং অবদান করা শক্ত hard
ওপর অধ্যায়টি পড়তে ভুলবেন না বিনিময় প্রথা মধ্যে "উন্নত আর, 2nd সংস্করণ" , অত্যধিক।