COBOL-এ ইনহেরিটেন্স এবং Polymorphism
COBOL একটি প্রাচীন এবং প্রথাগত প্রোগ্রামিং ভাষা হলেও, এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর ধারণা গ্রহণ করেছে COBOL 2002 সংস্করণ থেকে। ইনহেরিটেন্স (Inheritance) এবং Polymorphism (পলিমরফিজম) OOP এর দুইটি গুরুত্বপূর্ণ ধারণা, যা প্রোগ্রামিংয়ে কোড পুনরায় ব্যবহারযোগ্যতা এবং নমনীয়তা বৃদ্ধি করতে সাহায্য করে।
এই ধারণাগুলো মূলত ক্লাস এবং অবজেক্ট ভিত্তিক প্রোগ্রামিং ভাষাগুলির অংশ, যেমন Java, C++, ইত্যাদি। তবে COBOL-এ ইনহেরিটেন্স এবং Polymorphism নির্দিষ্টভাবে Object-Oriented COBOL (OOP COBOL) এর মধ্যে অন্তর্ভুক্ত হয়েছে। নিচে এই দুটি ধারণার ব্যাখ্যা এবং COBOL-এ তাদের ব্যবহার কিভাবে করা হয় তা আলোচনা করা হলো।
১. ইনহেরিটেন্স (Inheritance)
ইনহেরিটেন্স হল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের একটি মৌলিক ধারণা, যার মাধ্যমে একটি ক্লাস (subclass বা derived class) তার পিতামাতা ক্লাস (superclass বা base class) এর বৈশিষ্ট্য (properties) এবং আচরণ (methods) উত্তরাধিকারসূত্রে লাভ করে। এটি কোড পুনরাবৃত্তি কমায় এবং কোডের পুনঃব্যবহারযোগ্যতা বাড়ায়।
COBOL-এ ইনহেরিটেন্স:
COBOL-এ ইনহেরিটেন্স ব্যবহার করার জন্য INHERITS কীওয়ার্ড ব্যবহার করা হয়। একটি সাবক্লাস পিতামাতা ক্লাস থেকে বৈশিষ্ট্য এবং আচরণ গ্রহণ করতে পারে, তবে COBOL-এ ইনহেরিটেন্স বেশ সীমিত এবং তার প্রয়োগ একটু ভিন্ন।
উদাহরণ:
CLASS-ID. EMPLOYEE.
01 EMP-NAME PIC X(30).
01 EMP-ID PIC 9(5).
METHOD-ID. DISPLAY-INFO.
DISPLAY "Employee Name: " EMP-NAME.
DISPLAY "Employee ID: " EMP-ID.
END METHOD.
CLASS-ID. MANAGER INHERITS EMPLOYEE.
01 DEPARTMENT PIC X(20).
METHOD-ID. DISPLAY-INFO.
DISPLAY "Manager Name: " EMP-NAME.
DISPLAY "Manager ID: " EMP-ID.
DISPLAY "Department: " DEPARTMENT.
END METHOD.
PROCEDURE DIVISION.
CREATE MANAGER.
SET EMP-NAME TO "Alice".
SET EMP-ID TO 101.
SET DEPARTMENT TO "Finance".
INVOKE MANAGER "DISPLAY-INFO".
STOP RUN.ব্যাখ্যা:
EMPLOYEEক্লাস একটি সাধারণ কর্মচারী ক্লাস, যা কর্মচারীর নাম এবং আইডি ধারণ করে।MANAGERক্লাসEMPLOYEEক্লাস থেকে ইনহেরিট করা হয়েছে এবং এতে অতিরিক্তDEPARTMENTবৈশিষ্ট্য এবংDISPLAY-INFOমেথড রয়েছে।CREATE MANAGERস্টেটমেন্টের মাধ্যমে একটিMANAGERঅবজেক্ট তৈরি করা হয়েছে এবংDISPLAY-INFOমেথডটি কল করা হয়েছে।
২. Polymorphism (পলিমরফিজম)
Polymorphism একটি OOP ধারণা, যার মাধ্যমে একাধিক অবজেক্ট বা মেথড একই নাম দিয়ে বিভিন্ন কাজ করতে পারে। এটি দুটি প্রধান ধরনের হতে পারে:
- Method Overloading: একাধিক মেথড যা একই নামের কিন্তু ভিন্ন প্যারামিটার থাকে।
- Method Overriding: পিতামাতা ক্লাসের মেথডের উপর সাবক্লাস একটি নতুন মেথড প্রদান করে।
COBOL-এ Polymorphism সাধারণত Method Overriding এর মাধ্যমে অর্জিত হয়।
COBOL-এ Polymorphism:
COBOL-এ polymorphism method overriding এর মাধ্যমে পাওয়া যায়। এখানে একটি মেথড যা পিতামাতা ক্লাসে ডিফাইন করা আছে, তা সাবক্লাসে পুনঃডিফাইন করা হয় এবং তার আচরণ পরিবর্তন করা হয়।
উদাহরণ:
CLASS-ID. VEHICLE.
01 VEHICLE-NAME PIC X(20).
METHOD-ID. DISPLAY-INFO.
DISPLAY "Vehicle Name: " VEHICLE-NAME.
END METHOD.
CLASS-ID. CAR INHERITS VEHICLE.
01 CAR-TYPE PIC X(20).
METHOD-ID. DISPLAY-INFO.
DISPLAY "Car Name: " VEHICLE-NAME.
DISPLAY "Car Type: " CAR-TYPE.
END METHOD.
PROCEDURE DIVISION.
CREATE CAR.
SET VEHICLE-NAME TO "Toyota".
SET CAR-TYPE TO "Sedan".
INVOKE CAR "DISPLAY-INFO".
STOP RUN.ব্যাখ্যা:
VEHICLEক্লাসের একটি সাধারণ মেথডDISPLAY-INFOআছে যা গাড়ির নাম প্রদর্শন করে।CARক্লাসেDISPLAY-INFOমেথডটি আবার ডিফাইন করা হয়েছে, যেখানে গাড়ির নাম এবং গাড়ির প্রকার (Car Type) দেখানো হচ্ছে। এটি হল method overriding।INVOKE CAR "DISPLAY-INFO"স্টেটমেন্টটিCARক্লাসের মেথড কল করে, যা পিতামাতা ক্লাসের মেথডের তুলনায় ভিন্নভাবে আচরণ করছে।
COBOL-এ ইনহেরিটেন্স এবং Polymorphism এর সুবিধা
- কোড পুনঃব্যবহারযোগ্যতা:
- ইনহেরিটেন্সের মাধ্যমে, সাবক্লাস পিতামাতা ক্লাসের বৈশিষ্ট্য এবং মেথড লাভ করে, যা কোড পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে।
- নমনীয়তা:
- পলিমরফিজমের মাধ্যমে একাধিক মেথড একই নাম দিয়ে ভিন্নভাবে কাজ করতে পারে, যা কোডের নমনীয়তা বাড়ায়।
- সহজ কোড বজায় রাখা:
- পিতামাতা এবং সাবক্লাসের মধ্যে সম্পর্ক থাকার কারণে, কোড সহজে বজায় রাখা এবং পরিবর্তন করা সম্ভব হয়।
সারসংক্ষেপ
- ইনহেরিটেন্স (Inheritance): পিতামাতা ক্লাস থেকে বৈশিষ্ট্য ও মেথড গ্রহণ করা।
- Polymorphism: একই নামের মেথড ভিন্ন ভিন্ন উপায়ে কাজ করা (অথবা Method Overriding এর মাধ্যমে)।
- COBOL-এ ইনহেরিটেন্স এবং Polymorphism এর মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা এবং নমনীয়তা বৃদ্ধি করা যায়, যা আধুনিক OOP ধারণার সাথে সামঞ্জস্যপূর্ণ।
COBOL-এ OOP ধারণার ব্যবহার বর্তমানে কোড ম্যানেজমেন্ট এবং ডেভেলপমেন্টে আরও কার্যকরী এবং শক্তিশালী পদ্ধতি প্রদান করছে।
Read more