Inheritance, Polymorphism, এবং Encapsulation হল Object-Oriented Programming (OOP) এর তিনটি মূল ধারণা, যা রুবি প্রোগ্রামিং ভাষাসহ অন্যান্য OOP ভাষায় ব্যবহৃত হয়। এগুলি কোডের পুনঃব্যবহারযোগ্যতা, নমনীয়তা এবং নিরাপত্তা বৃদ্ধিতে সহায়ক।
এখানে এই তিনটি ধারণার বিস্তারিত আলোচনা করা হলো।
১. Inheritance (অন্তর্নিহিততা)
Inheritance হল এমন একটি প্রক্রিয়া, যেখানে একটি ক্লাস অন্য ক্লাসের বৈশিষ্ট্য এবং পদ্ধতি (methods) উত্তরাধিকারসূত্রে পেয়ে থাকে। এটি কোড পুনঃব্যবহারযোগ্যতা নিশ্চিত করে, কারণ আপনি নতুন ক্লাস তৈরি করার সময় পুরনো ক্লাসের বৈশিষ্ট্যগুলো পুনঃব্যবহার করতে পারেন।
উদাহরণ:
# Parent class (Base class)
class Animal
def speak
puts "The animal makes a sound"
end
end
# Child class (Derived class)
class Dog < Animal
def speak
puts "The dog barks"
end
end
# Child class (Derived class)
class Cat < Animal
def speak
puts "The cat meows"
end
end
# Using inheritance
dog = Dog.new
dog.speak # Output: The dog barks
cat = Cat.new
cat.speak # Output: The cat meowsএখানে, Dog এবং Cat ক্লাসগুলি Animal ক্লাস থেকে ইনহেরিট (inherit) করেছে এবং তাদের নিজস্ব speak পদ্ধতি (method) কাস্টমাইজ করেছে। এতে কোড পুনঃব্যবহার সম্ভব হয়েছে এবং নতুন ক্লাসগুলি সহজেই তৈরি করা গেছে।
মূল ধারণা:
- Inheritance একটি ক্লাসের বৈশিষ্ট্য অন্য ক্লাসে স্থানান্তরিত করার প্রক্রিয়া।
- ক্লাসের পুনঃব্যবহারযোগ্যতা এবং সংস্করণ নিয়ন্ত্রণে এটি সহায়ক।
২. Polymorphism (বহু আকার ধারণ)
Polymorphism হল এমন একটি ধারণা, যেখানে একই নামের পদ্ধতি (method) বিভিন্ন ক্লাসে ভিন্নভাবে কাজ করে। এটি প্রোগ্রামিং ভাষায় একটি শক্তিশালী বৈশিষ্ট্য, যা কোডের নমনীয়তা এবং কার্যকারিতা বাড়ায়।
উদাহরণ:
class Animal
def speak
puts "The animal makes a sound"
end
end
class Dog < Animal
def speak
puts "The dog barks"
end
end
class Cat < Animal
def speak
puts "The cat meows"
end
end
# Polymorphism in action
animals = [Dog.new, Cat.new, Animal.new]
animals.each do |animal|
animal.speak
endআউটপুট:
The dog barks
The cat meows
The animal makes a soundএখানে, speak মেথডটি বিভিন্ন ক্লাসে ভিন্নভাবে আচরণ করছে, এবং আমরা একই speak নামের মেথডে বিভিন্ন ক্লাসের আচরণ দেখতে পাচ্ছি। এটি Polymorphism এর উদাহরণ।
মূল ধারণা:
- Polymorphism হল একাধিক ক্লাসে একই নামের মেথডের ভিন্ন ভিন্ন বাস্তবায়ন।
- এটি কোডের নমনীয়তা এবং পুনঃব্যবহারযোগ্যতা নিশ্চিত করে।
৩. Encapsulation (এনক্যাপসুলেশন)
Encapsulation হল একটি ক্লাসের বৈশিষ্ট্য এবং পদ্ধতিকে একত্রিত করা এবং এটি বাইরের কোডের অ্যাক্সেস থেকে সুরক্ষিত রাখা। এটি অ্যাবস্ট্রাকশন (Abstraction) এর সাথে সম্পর্কিত, যেখানে একটি ক্লাসের অভ্যন্তরীণ কার্যকারিতা বাইরের প্রোগ্রাম থেকে গোপন রাখা হয়। এতে ডেটা নিরাপদ থাকে এবং এক্সেস কন্ট্রোল সুনিশ্চিত করা যায়।
উদাহরণ:
class BankAccount
def initialize(owner, balance)
@owner = owner # Instance variable
@balance = balance
end
def deposit(amount)
@balance += amount
end
def withdraw(amount)
if amount <= @balance
@balance -= amount
else
puts "Insufficient funds"
end
end
def display_balance
puts "Balance: #{@balance}"
end
end
account = BankAccount.new("John", 1000)
account.deposit(500)
account.withdraw(200)
account.display_balance # Output: Balance: 1300এখানে, @owner এবং @balance হলো instance variables, যা বাইরের কোড থেকে সরাসরি অ্যাক্সেস করা যাবে না। deposit এবং withdraw পদ্ধতিগুলির মাধ্যমে এগুলোর মান পরিবর্তন করা হয়, এবং display_balance পদ্ধতিতে ব্যালেন্স দেখানো হয়।
মূল ধারণা:
- Encapsulation ডেটা এবং কার্যকারিতা একত্রিত করা এবং বাইরের কোড থেকে সুরক্ষিত রাখা।
- এটি ডেটা নিরাপত্তা এবং মেথড ব্যবস্থাপনা সহজ করে।
তিনটি OOP ধারণার সম্পর্ক
- Inheritance কোড পুনঃব্যবহারযোগ্যতার জন্য ব্যবহৃত হয়।
- Polymorphism একাধিক আচরণ ধারণ করার জন্য ব্যবহৃত হয়, যাতে একাধিক ক্লাস একই নামের পদ্ধতি ভিন্নভাবে ব্যবহার করতে পারে।
- Encapsulation ডেটা সুরক্ষা এবং কোডের অভ্যন্তরীণ কাজের গোপনীয়তা বজায় রাখার জন্য ব্যবহৃত হয়।
সারসংক্ষেপ
- Inheritance: এক ক্লাস অন্য ক্লাসের বৈশিষ্ট্য এবং পদ্ধতি উত্তরাধিকার সূত্রে পায়।
- Polymorphism: একই নামের মেথড বিভিন্ন ক্লাসে ভিন্নভাবে কাজ করে।
- Encapsulation: ক্লাসের বৈশিষ্ট্য এবং পদ্ধতিকে একত্রিত করা এবং বাইরের অ্যাক্সেস থেকে সুরক্ষিত রাখা।
এই তিনটি OOP ধারণা কোডের পুনঃব্যবহারযোগ্যতা, নমনীয়তা, এবং নিরাপত্তা উন্নত করতে সহায়ক এবং এটি আপনার প্রোগ্রামিং দক্ষতা বৃদ্ধিতে সহায়ক হবে।
Read more