ওওপি এবং পিওপির মধ্যে পার্থক্য

ওওপি (OOP):

অবজেক্ট জিনিসটাকে আমরা একটা সুন্দর র‍্যাপিং পেপার দিয়ে মোড়ানো একটা গিফট বাক্স হিসেবে চিন্তা বা কল্পনা করতে পারি যার বিভিন্ন ধরনের বৈশিস্ট্য বা Property বিদ্যমান। তবে এর ভেতরের অবস্থা সম্পর্কে আমরা বাইরে থেকে অবগত নই। কিন্তু অবজেক্টগুলো একটার সাথে আরেকটা যোগাযোগ রক্ষা করতে পারবে মেসেজের মাধ্যমে । মেথড নামক একটা সিস্টেম থাকবে যা এই মেসেজগুলো নিয়ে কাজ করবে। আর প্রতিটা অবজেক্ট এরই কিছু ব্যাক্তিগত নির্দিস্ট দায়িত্ব/Functionality থাকবে যা কেউ প্রোগ্রাম করে দিলে সে অনুযায়ী তার দায়িত্ব পালন করবে(Method)।

এটি একটি প্রোগ্রামের তথ্য নিরাপত্তা নিশ্চিত করে। কিন্তু, কোন বস্তুর ফাংশন অন্য বস্তুর ফাংশন অ্যাক্সেস করতে পারে যা বস্তুকে একে অপরের সাথে যোগাযোগ করার অনুমতি দেয়। আরেকটি বস্তুর পদ্ধতি দ্বারা এক বস্তুর পদ্ধতি উদ্ভাবন করা হয় বার্তা পাসিং হিসাবে পরিচিত।

আর এই OOP কিন্তু কোনো ল্যাঙ্গুয়েজ স্পেসিফিক কিছু না মানে এটা আসলে একটা মডেল বা প্যারাডাইম(Paradigm) যার সুবিধা মোটামুটি সবধরনের হাইলেভেল প্রোগ্রামিং ল্যাঙ্গুয়েজেই(Java, C#, PHP, C++, Python ইত্যাদি) বিদ্যমান। এবং ইমপ্লিমেন্টেশান এর কনসেপ্ট গুলি সব ল্যাঙ্গুয়েজের ক্ষেত্রেই মোটামুটি একই ধরনের প্যাটার্ন ফোলো করে।

পিওপি (POP):

পিওপি (POP) প্রোগ্রামিংয়ের একটি প্রচলিত উপায়। কার্যনির্বাহী প্রোগ্রামিং হলো প্রাথমিক ক্রিয়াকলাপটি ক্রমক্রমিক ক্রমে কাজটি করায়। ফ্লোচার্ট প্রোগ্রামটির নিয়ন্ত্রণ প্রবাহকে সংগঠিত করে। প্রোগ্রামটি যদি বিস্তৃত হয় তবে এটি কিছু ছোট ইউনিটগুলিতে ফাংশন নামে কাঠামোযুক্ত যা গ্লোবাল ডেটা ভাগ করে। এখানে, ডেটা সুরক্ষার উদ্বেগ উত্থাপিত হয়, কারণ কার্যগুলি দ্বারা প্রোগ্রামটিতে একটি অনিচ্ছাকৃত পরিবর্তন ঘটে।

ওওপি এবং পিওপির মধ্যে পার্থক্য:

অবজেক্ট জিনিসটাকে আমরা একটা সুন্দর র‍্যাপিং পেপার দিয়ে মোড়ানো একটা গিফট বাক্স হিসেবে চিন্তা বা কল্পনা করতে পারি। ওওপি এবং পিওপির মধ্যে পার্থক্য নিম্নরূপ-

১। ওওপি হলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এবং এটি একটি প্রোগ্রামিং পদ্ধতি যা অ্যালগরিদমের চেয়ে ডেটাগুলিতে ফোকাস করে। অন্যদিকে পিওপি প্রক্রিয়াভিত্তিক প্রোগ্রামিংয়ের জন্য সংক্ষিপ্ত, পদ্ধতিগত বিমূর্তির উপর দৃষ্টি নিবদ্ধ করে।

২। তিনটি অ্যাক্সেসিং মোডগুলি ওওপিতে বৈশিষ্ট্য বা ফাংশনগুলি অ্যাক্সেস করতে ব্যবহৃত হয়- ব্যক্তিগত, পাবলিক এবং সুরক্ষিত। অন্যদিকে, পিওপি-তে, কোনও নির্দিষ্ট প্রোগ্রামের বৈশিষ্ট্য বা ফাংশন অ্যাক্সেস করার জন্য এই জাতীয় কোনও অ্যাক্সেস মোডের প্রয়োজন হয় না।

৩। প্রধান ফোকাসটি ওওপি-র ক্ষেত্রে প্রোগ্রামের সাথে সম্পর্কিত ডেটাগুলিতে থাকে। অন্যদিকে পিওপি প্রোগ্রামের ফাংশন বা অ্যালগরিদমে নির্ভর করে।

৪। ওওপি-তে, বিভিন্ন ফাংশন একসাথে কাজ করতে পারে। অন্যদিকে পিওপি পদ্ধতি এবং ফাংশনগুলি সম্পাদন করার জন্য পদ্ধতিগত ধাপে ধাপে অনুসরণ করে।

৫। ওওপি-তে কোনও অবজেক্টের ডেটা এবং ফাংশনগুলি একটি একক সত্তার মতো কাজ করে তাই অ্যাক্সেসযোগ্যতা একই শ্রেণীর সদস্য ফাংশনে সীমাবদ্ধ। অন্যদিকে পিওপিতে ডেটা অবাধে সরাতে পারে কারণ প্রতিটি ফাংশনে আলাদা আলাদা ডেটা থাকে।

৬। ওওপি পিওপির চেয়ে বেশি সুরক্ষিত ডেটা লুকানোর বৈশিষ্ট্যটির জন্য ধন্যবাদ যা একই শ্রেণীর সদস্য ফাংশনে ডেটা অ্যাক্সেসকে সীমাবদ্ধ করে। অন্যদিকে পিওপিতে ডেটা লুকানোর কোনও উপায় নেই, সুতরাং এটি কম সুরক্ষিত করে।

৭। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামগুলিকে সংশোধন করা সহজতর করে তুলনায় বিদ্যমান অবজেক্ট থেকে সহজেই নতুন ডেটা অবজেক্ট তৈরি করা যায়। অন্যদিকে পিওপিতে ডেটা যুক্ত করার কোনও সহজ প্রক্রিয়া নেই, অন্তত পুরো প্রোগ্রামটি সংশোধন না করেই।

৮। ওওপি একটি প্রোগ্রাম ডিজাইনের জন্য নীচে আপ পদ্ধতির অনুসরণ করে। অন্যদিকে পিওপি একটি প্রোগ্রাম ডিজাইন করতে একটি শীর্ষ-ডাউন পদ্ধতির গ্রহণ করে।