অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কি এবং কেন?

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কি : অবজেক্ট অরিয়েন্টেড কোডিং সাধারন প্রসিডিউরাল (Procedural) কোডিং এর মতই শুধু পার্থক্য হচ্ছে এখানে একই ধরনের ফাংশন এবং এর সাথে কোডগুলিকে এক একটি অবজেক্ট এর মধ্যে রাখা হয়।কিন্তু প্রসিডিউরাল পদ্ধতিতে একই সাথে সব ফাংশন বা কোড রাখা হয় এতে অনেক অসুবিধা হয় যেমন
*একই নামের অনেক গুলি ভেরিয়েবল বা ফাংশন তৈরী করতে পারবেননা (যেখানে প্রতিটি ভেরিয়েবলের মান এবং প্রতিটি ফাংশনের কাজ অলাদা হবে)।
*কোড অনেক বড় হবে ফলে পরে এই কোডে কোন সমস্যা হলে বা নতুন কোড যোগের প্রয়োজন হলে পুরো কোড আবার পড়ে দেখতে হবে যে, নতুন যে ফাংশন বা ভেরিয়েবল (গ্লোবাল) যোগ হচ্ছে সেই নামে আগে থেকে এখানে কোন ভেরিয়েবল বা ফাংশন আছে কিনা।
আরও অনেক সমস্যা হয় প্রসিডিউরাল কোড লিখলে এবং এই সমস্যাগুলির সমাধানের জন্য অবজেক্ট অরিয়েন্টেড প্রোগামিং নতুন কনসেপ্ট নিয়ে এসেছে।উপরের সমস্যাগুলির সমাধান ছাড়াও আরও অনেক সুবিধা আছে নিচে সংক্ষেপে আলোচনা করা হল:
**একটা স্ক্রিপ্টে যদি ১০ টা অবজেক্ট লিখেন এবং প্রতিটি অবজেক্টে একই নামের ফাংশন বা ভেরিয়েবল থাকে তবু সমস্যা হবেনা যদিও ফাংশনগুলি এক একটা অবজেক্টে এক এক রকম কাজ করবে।এরুপ ভেরিয়েবলেরও ক্ষেত্রেও প্রযোজ্য।
**আপনার সাইটের প্রতিটি অংশের জন্য আলাদা আলাদা মডিউল তৈরী করে সেখানে প্রাসংগিক অবজেক্ট গুলি ভাগ ভাগ করে রাখতে পারবেন।
যেমন আপনার সাইট যদি অনেক বড় হয় ধরুন ফেসবুকের মত তাহলে ইউজার ম্যানেজমেন্ট নামে একটা মডিউল বানাতে পারেন।সেখানে ইউজারের লগিন এবং রেজিস্ট্রেশনের জন্য একটা অবজেক্ট বানাতে পারেন,একটা প্রোফাইল অবজেক্ট থাকতে পারে। এরপর মেসেজের জন্য একটা মডিউল বানাতে পারেন সেখানে মেসেজ হ্যান্ডলিং এর জন্য একটা অবজেক্ট থাকতে পারে ইত্যাদি ইত্যাদি।
**ফলে স্ক্রিপ্টগুলি ছোট ছোট হবে এবং পরে নতুন কোড বা অবজেক্ট যোগ করতে চাইলে প্রাসংগিক কোন মডিউলে ঢুকে প্রয়োজনীয় কোডটুকু যোগ করে দিতে পারবেন।
**আপনার তৈরী অবজেক্টগুলি একটি ফ্রেমওয়ার্কের মত হয়ে থাকবে,ধরুন অন্য আরেকটা সাইট তৈরী করছেন সেখানে একই ধরনের এপ্লিকেশন আছে তাহলে নতুন করে কোড না লিখে এখান থেকে অবজেক্ট তুলে নিয়ে গিয়ে সেই প্রজেক্টে ব্যবহার করতে পারেন।
**কোডগুলি মডিউলার হয়ে থাকবে,কোন অবজেক্ট আরেকটা অবজেক্টে কোন প্রভাব ফেলবেনা।ধরুন সাইটে ইউজার রেজিস্ট্রেশনে সমস্যা হচ্ছে তাহলে পুরো কোড আর পড়ে দেখতে হবেনা শুধু ইউজারের রেজিস্ট্রেশনের জন্য যে অবজেক্ট তৈরী করেছেন সেখানে গিয়ে ঠিক করলেই কাজ হয়ে যাবে।
এছাড়াও আরও অনেক সুবিধা আছে তাই অন্যান্য ল্যাংগুয়েজের মত পিএইচপিতেও অবজেক্ট অরিয়েন্টেড পদ্ধতিতে কোডিং করা হয়।অবজেক্ট অরিয়েন্টেড পদ্ধতিতে কোডিং করতে যেসব জান হবে তা হল-
  • অবজেক্ট এবং ক্লাস (class) কি ও এদের মধ্যে পার্থক্য
  • প্রোপার্টিজ (মেম্বার ভেরিয়েবল) এবং মেথড
  • কনস্ট্রাক্টর (constructor) এবং ডিস্ট্রাক্টর (destructor) মেথড + $this সিডো (pseudo) ভেরিয়েবল
  • এনক্যাসুলেশন
  • অবজেক্ট relation
  • ইনহেরিটেন্স
  • টাইপ হিন্টিং (Type hinting) +   instanceof কিওয়ার্ড
  • পলিমরফিজম (Polymorphism)
  •  মেথড ওভাররাইডিং
  •  স্টাটিক প্রোপার্টিজ এবং মেথড
  • এবস্ট্রাক্ট ক্লাস এবং মেথড
  • ক্লাস অটোলোডিং
  • ইন্টারফেস ক্লাস
  • নেমস্পেস (Namespace)
  • ম্যাজিক মেথড এবং কনস্টান্ট

Share this

Related Posts

Previous
Next Post »