আমাদের আজকের আলোচনার বিষয় অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর সুবিধা-অসুবিধাসমূহ – যা অধ্যায় ১ অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর অন্তর্ভুক্ত। বর্তমান বিশ্বের সর্বাধুনিক প্রযুক্তি হচ্ছে কম্পিউটার প্রযুক্তি। কারণ শিল্পকারখানা, গবেষণা, শিক্ষাপ্রতিষ্ঠান, চিকিৎসাশাস্ত্র ইত্যাদি সকল ক্ষেত্রই আজ কম্পিউটার অটোমেটেড। কম্পিউটার অটোমেশনের সঙ্গে কম্পিউটার প্রোগ্রামিং ও প্রোগ্রামিং লেখার জন্য প্রোগ্রামিং ল্যাংগুয়েজ অত্যন্ত গুরুত্বপূর্ণ।
তাই শিক্ষা ও গবেষণার জন্য প্রোগ্রামিং ল্যাংগুয়েজ অধ্যয়ন একটি অতি আবশ্যকীয় বিষয়। বিষয়টি অত্যন্ত গুরুত্বসহ বিবেচনা করে বর্তমানে কারিগরি শিক্ষার সকল টেকনোলজিতে কম্পিউটার প্রোগ্রামিং ল্যাংগুয়েজ বিষয়কে আবশ্যিক করা হয়েছে ।

Table of Contents
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর সুবিধা-অসুবিধাসমূহ
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর সুবিধা (Benifits of OOP) :
প্রোগ্রাম ডিজাইনার এবং সিস্টেম ব্যবহারকারী উভয়ের জন্য অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কতকগুলো সুবিধা প্রদান করে। এ অবস্থায় কম রক্ষণাবেক্ষণ খরচে, অল্প সময়ে, অল্প পরিশ্রমে উন্নত মানের সফটওয়্যার নির্মাণ করা সম্ভব।
বর্তমানে অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এত জনপ্রিয় যে প্রোগ্রামিং বলতে অবজেক্ট অরিয়েন্টেড প্রোগ্রামিংকেই বুঝায় এবং অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ছাড়া সিস্টেম ডিজাইন চিন্তাই করা যায় না। এমন কোন সমস্যা নেই যা অবজেক্ট অরিয়েন্টেড পদ্ধতিতে সমাধান করা যায় না। প্রোগ্রামিং-এর গতানুগতিক ধারা পাল্টে দিয়েছে অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং। মোট কথা অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং-এর সুবিধা বলে শেষ করা যাবে না।
নিম্নে এরূপ কয়েকটি সুবিধা
- বাস্তব ভিত্তিক সিস্টেম ডিজাইনে অবজেক্ট অরিয়েন্টেড-প্রোগ্রামিং ল্যাংগুয়েজের কোন বিকল্প নেই। কারণ এতে বাস্তবতার আলোকে খুব সহজে যে কোন সমস্যার সমাধান করা সম্ভব।
- এতে বড় কোন সমস্যাকে ছোট ছোট অংশে ভাগ করে ভাগগুলির সমাধান একত্রিত করে সমস্যার সমাধান করা হয়। ফলে ভুল-ত্রুটি নির্ণয় সুবিধাজনক।
- ডাটা হাইডিং এর মাধ্যমে প্রোগ্রামের ডাটাকে কিংবা প্রোগ্রামের security রক্ষা করা যায়।
- Inheritance system প্রয়োগ করে পুরাতন ক্লাসের পরিধি বাড়িয়ে নতুন ক্লাস তৈরি করা যায়।
- প্রয়োজনে যে কোন সময় প্রোগ্রামে অতিরিক্ত ডাটা বা ফাংশন যোগ করা যায়। এজন্য পুরো প্রোগ্রাম পরিবর্তন করতে হয় না।
- সমস্যার ধরন অনুযায়ী এ প্রোগ্রামিং নিজস্ব ডাটা টাইপ তৈরি করে এবং এতে যে কোন সংখ্যক object ব্যবহার করা যায়।
- প্রয়োজনে একই প্রোগ্রামে একাধিক ডাটা টাইপের object ব্যবহার করা যায় এবং একই object কে ভিন্ন ভিন্ন রূপে ব্যবহার করা যায়।
- এই পদ্ধতিতে Multiple প্রোগ্রামার সিস্টেমে প্রোগ্রাম ডিজাইন করা যায়।
- ইহা Networking program এর সুবিধা প্রদান করে।
- প্রোগ্রাম টেস্টিং ও ডিবাগিং করা সহজ তাই প্রোগ্রামের জটিলতা হ্রাস পায় এবং
- প্রোগ্রামের আকার বেড়ে গেলেও এই পদ্ধতিতে প্রোগ্রামের রক্ষণাবেক্ষণ, পরিবর্তন, পরিবর্ধন, পরিমার্জন করা সহজ।

অবজেক্ট অরিয়েন্টেড-প্রোগ্রামিং এর অসুবিধা (Drawbacks of OOP):
বাস্তব ভিত্তিক সিস্টেম ডিজাইনে অবজেক্ট- প্রিয়েন্টেড প্রোগ্রামিং-এর কোন বিকল্প নেই। তবে অবজেক্ট অরিয়েন্টেড-প্রোগ্রামিং ব্যবহারে কিছু সমস্যা আছে। যেমন-
- প্রসিডিউর অরিয়েন্টেড-প্রোগ্রামিং-এর মত অবজেক্ট অরিয়েন্টেড-প্রোগ্রামিং পদ্ধতি অনেকটা অপরিচিত।
- অবজেক্ট অরিয়েন্টেড টেস্টিং, ডিবাগিং, মেইনটেনন্স পদ্ধতি কিছুটা জটিল।
- ইনহেরিটেড অবজেক্টের ক্ষেত্রে মাল্টিপল ক্লাস হায়ারারকির জন্য বিভিন্ন ক্লাসের মেম্বার ভেরিয়েবল এবং মেম্বার ফাংশনকে প্রতিনিয়ত মেমোরির বিভিন্ন অবস্থান এবং সোর্স ফাইল থেকে ডাটা আদান-প্রদান করতে হয়। এজন্য সিস্টেমে ডাটার নির্দিষ্ট কোন গতিপথ থাকে না।
- ম্যাসেজ পাসিং-এর ক্ষেত্রে এক অবজেক্টের ফাংশন থেকে অপর কোন অবজেক্টের ফাংশনে যোগাযোগের সময় অতিরিক্ত সময় ব্যয় হয়।
- পলিমরফিজম অর্থাৎ ডাইনামিক বাইন্ডিং এর ক্ষেত্রে প্রোগ্রাম কাউন্টার বারবার এক ফাংশন থেকে অন্য ফাংশনে পরিবর্তন করতে হয়, ফলে প্রসেসিং টাইম বেশি।