Object-Oriented Programming

মনে করো তুমি একদিন একটি পোশাক কারখানা দেখতে গেছো। সেখানে গিয়ে দেখলে একেবারে দক্ষযজ্ঞ চলছে। গায়ের জামা তৈরি হচ্ছে কয়েক হাজার। একপাশে জামার বিভিন্ন অংশের জন্য থান কাপড় কাটা হচ্ছে। আরেক পাশে কাটা কাপড়গুলো সেলাই কল দিয়ে সেলানো হচ্ছে। দেহের অংশটা সেলানো হচ্ছে আগে, তারপর ঘাড়ের অংশটা লাগানো হচ্ছে, আর তারও পরে হাতের অংশটা। অন্য আরেক পাশে দেখতে পেলে বোতাম লাগানো হচ্ছে, তারপর ইস্ত্রি করে মোড়কে ভরা হচ্ছে।

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

উপরে বর্ণনার যে দৃষ্টিভঙ্গির কথা বলা হলো এটাই হলো আমাদের activity-oriented programming (কার্যমুখী পরিগণনা) যার একটা প্রকারভেদ হলো structured programming (কাঠামোমুখী পরিগণনা)। আমরা জানি structured programmingএ নানা রকম control flow (নিয়ন্ত্রণ প্রবাহ) যেমন routine programming (ফর্দালি পরিগণনা), subroutine programming (উপফর্দালি পরিগণনা), conditional programming (শর্তালি পরিগণনা), iterative programming (পুনালি পরিগণনা), ও recursive programming (চক্রালি পরিগণনা) ব্যবহার করে programএর logical structure (যৌক্তিক কাঠামো) দাঁড় করানো হয়। আর program শেষ বিচারে নানা রকম data (উপাত্ত) input (যোগান) নিয়ে সেগুলোকে process করে ভিন্ন রকম data output (ফলন) হিসাবে দেয়।

এবার মনে করো তুমি আরেকদিন ওই একই পোশাক কারখানা দেখতে গেলে। ঠিক একইভাবে সেদিনও সেখানে কয়েক হাজার জামা তৈরি হচ্ছে। কিন্তু তুমি এবার ঠিক করলে পুরো ব্যাপারটাকে তুমি ভিন্ন দৃষ্টিকোণ থেকে দেখতে চাও। কোথায় কী হচ্ছে সেটা তো দেখতে পেয়েছো আগের দিনও। এই দিন তুমি চাও পোশাক কারখানাটা আসলে কোন জিনিস নিয়ে কাজ করে কাদের নিয়ে কাজ করে সেগুলোকে তুমি প্রথমে সামনে আনবে। তারপর কীভাবে কাজগুলো হয় এক হাত থেকে আরেক হাতে গিয়ে, সেগুলো তো আসবেই তবে সেগুলো আসবে পরে। আমরা আসলে এখানে যে দৃষ্টিভঙ্গির কথা বলছি সেটা হলো object-oriented programming(বস্তুমুখী পরিগণা)

Object oriented programmingএর দৃষ্টিভঙ্গী অনুযায়ী দেখলে প্রথমেই বলতে হবে উপরের পোশাক কারখানা জামা নিয়ে কাজ করে। থান কাপড় কেটে সেলাই করে তারা জামা বানায়। সেই জামাতে আছে দেহের অংশ, হাতের অংশ, আর ঘাড়ের অংশ। আগে দেহের অংশ সেলাতে হয়, তারপর ঘাড়ের অংশ, তারপর হাতের অংশ। জামাতে কয়েকটা বোতামও থাকে, সেগুলো লাগাতে হয়। তারপর জামা ইস্ত্রি করে মোড়কে ভরতে হয়। জামা তৈরির কাজগুলো করে তিন রকমের লোক। কেউ কেবল থান কাপড় থেকে কেটে দেয়। কেউ সেলাইয়ের কাজগুলো করে। আর কেউ বোতাম লাগানো, ইস্ত্রি করা ও মোড়কে ভরার কাজ করে। একই লোক অবশ্য একাধিক রকমের কাজও করে। পোশাক কারখানাতে পুরো কাজটি চলে এই জামাকে কেন্দ্র করে এবং কে কোন কাজ পারে বা কে কখন কোনটা করতে পারবে তার ওপর। একটা জামার যাত্রা শুরু হয় থান কাপড় থেকে আর ধাপে ধাপে সেটা মোড়কবন্দী জামা হয়ে যায়। আর একজন লোক কেবল সেগুলোই করে যেগুলো সে করতে পারে এবং অবশ্যই যদি সে অন্য কোনো কাজে ব্যস্ত না থাকে।

We cut cloths, we make shirts. আমরা কাপড় কাটি, আমরা জামা বানাই।

সারমর্মে বলা যায়, activity-oriented programmingএ আমাদের মনোযোগ থাকে ক্রিয়াপদ “cut” ও “make” বা কাটা ও বানানোর দিকে। অন্যদিকে, object-oriented programmingএ আমাদের মনোযোগ থাকে object (কর্ম) “cloths” ও “shirts” বা কাপড় ও জামার দিকে এবং subject (কর্তা) “we”এর দিকেও। ব্যাকরণ অনুযায়ী উপরের বাক্যটাকে “Cloths are cut by us, shirts are made by us. কাপড় আমাদের দ্বারা কাটা হয়, জামা আমাদের দ্বারা বানানো হয়” এভাবেও লেখা যায়, যেখানে “cloths” ও “shirts” বা “কাপড়” ও “জামা” হলো subject (কর্তা) আর “us” বা “আমাদের” বা মানুষ হলো object (কর্ম)। আসলে subject (কর্তা) ও object (কর্ম) উভয়ই ভিন্ন ভিন্ন রকম object (বস্তু), বাক্যে একটা subject বা কর্তার ভূমিকা পালন করে, আরেকটা object বা কর্মের।

(Visited 189 times, 1 visits today)

Leave Comments