ES6 (ECMAScript 2015) এ method, getter, এবং setter এর ব্যবহার জাভাস্ক্রিপ্টের ক্লাসগুলিকে আরও শক্তিশালী এবং উপযোগী করেছে। এগুলি Object-Oriented Programming (OOP) স্টাইলের প্রোগ্রামিংয়ে কাজ করার সময় কার্যকরী হয়। এখানে আমরা method, getter, এবং setter এর ব্যবহার এবং তাদের মধ্যে পার্থক্য বুঝে দেখব।
Method in ES6 Classes
Method হলো ফাংশন যা ক্লাসের মধ্যে ডিফাইন করা হয়। এগুলি সাধারণত অবজেক্টের আচরণ বা কার্যকলাপ নির্ধারণ করে।
Method Syntax:
class ClassName {
methodName() {
// method body
}
}
উদাহরণ:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person1 = new Person("John", 30);
person1.greet(); // "Hello, my name is John and I am 30 years old."
এখানে, greet() একটি method যা Person ক্লাসের এক্সপ্লেসিত আচরণ নির্দেশ করে, যেটি ব্যক্তির নাম এবং বয়স প্রিন্ট করে।
Getter এবং Setter in ES6
Getter এবং Setter হলো বিশেষ মেথড যা ক্লাসের প্রোপার্টি অ্যাক্সেস বা সেট করার সময় ব্যবহার করা হয়। এগুলি সাধারণত ডেটা হালনাগাদ এবং নিয়ন্ত্রণে সাহায্য করে।
- Getter: Getter মেথডের মাধ্যমে একটি প্রোপার্টির মান পড়া হয়। এটি সাধারণত ক্লাসের প্রোপার্টির মান বের করতে ব্যবহৃত হয়।
- Setter: Setter মেথডের মাধ্যমে একটি প্রোপার্টির মান সেট করা হয়। এটি মান নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।
Getter এর সিনট্যাক্স:
get propertyName() {
// return value
}
Setter এর সিনট্যাক্স:
set propertyName(value) {
// set value
}
Getter এবং Setter এর উদাহরণ:
class Person {
constructor(name, age) {
this._name = name;
this._age = age;
}
// Getter for 'name'
get name() {
return this._name;
}
// Setter for 'name'
set name(newName) {
this._name = newName;
}
// Getter for 'age'
get age() {
return this._age;
}
// Setter for 'age'
set age(newAge) {
if (newAge < 0) {
console.log("Age cannot be negative!");
} else {
this._age = newAge;
}
}
}
const person1 = new Person("John", 30);
console.log(person1.name); // "John" - Getter
person1.name = "Doe"; // Setter
console.log(person1.name); // "Doe"
console.log(person1.age); // 30 - Getter
person1.age = -5; // Invalid age
console.log(person1.age); // 30 - Age can't be negative
ব্যাখ্যা:
- এখানে,
nameএবংageপ্রোপার্টির জন্য getter এবং setter মেথড ব্যবহার করা হয়েছে। nameএবংageপ্রোপার্টির জন্য getter এর মাধ্যমে মান পড়া যায় এবং setter এর মাধ্যমে নতুন মান সেট করা যায়।- Setter মেথডের মধ্যে
ageপ্রপার্টির জন্য একটি চেক আছে, যেখানে আমরা যদি negative বয়স দেয়ার চেষ্টা করি, তবে এটি একটি ত্রুটি (error) মেসেজ প্রদর্শন করবে।
Method, Getter, Setter এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Method | Getter | Setter |
|---|---|---|---|
| কাজ | ক্লাসের কোনো কার্যকলাপ বা আচরণ | ক্লাসের প্রোপার্টি থেকে মান পড়া | ক্লাসের প্রোপার্টির মান সেট করা |
| সিনট্যাক্স | methodName() {} | get propertyName() {} | set propertyName(value) {} |
| উদাহরণ | greet() {} | get name() { return this._name; } | set name(newName) { this._name = newName; } |
| ব্যবহার | কার্যকরী ফাংশন/এ্যাকশন | প্রোপার্টি মান রিটার্ন করতে | প্রোপার্টি মান সেট করতে |
Getter এবং Setter ব্যবহার করার সুবিধা
- ডেটা এনক্যাপসুলেশন (Data Encapsulation):
Getter এবং Setter মেথড ব্যবহার করার মাধ্যমে, আপনি প্রোপার্টির মান নিয়ন্ত্রণ করতে পারেন এবং বাইরের কোড থেকে সরাসরি এক্সেস বন্ধ করতে পারেন। এতে ডেটা নিরাপদ থাকে এবং আরও নিয়ন্ত্রিত উপায়ে সেট করা যায়। - ডেটা ভ্যালিডেশন:
Setter মেথডের মাধ্যমে আপনি ডেটার মান যাচাই করতে পারেন, যেমন বয়স নির্ধারণের জন্য আপনি সেটার মান পরিবর্তন করতে পারেন, যদি তা বৈধ না হয়। - লজিক সংযোজন:
Getter এবং Setter মেথডের মাধ্যমে আপনি মান সেট বা রিটার্ন করার সময় অতিরিক্ত লজিক বা ফাংশনালিটি যোগ করতে পারেন। যেমন, যখন আপনি কোন প্রোপার্টি সেট করেন, তখন একটি নির্দিষ্ট ক্যালকুলেশন বা ভ্যালিডেশন করা যায়।
সারাংশ
ES6 ক্লাসে method, getter, এবং setter ব্যবহার করা জাভাস্ক্রিপ্টের কার্যকারিতা এবং ফ্লেক্সিবিলিটি বাড়ায়। Methods ক্লাসের কার্যকলাপ বা আচরণ নির্ধারণ করে, আর getters এবং setters প্রোপার্টি অ্যাক্সেস ও সেট করার জন্য ব্যবহৃত হয়, যা ডেটা নিয়ন্ত্রণ ও ভ্যালিডেশন সহজ করে।
Read more