Groovy একটি ডাইনামিক প্রোগ্রামিং ভাষা যা অনেকগুলো শক্তিশালী বৈশিষ্ট্য সরবরাহ করে, যার মধ্যে Dynamic Method Addition এবং Property Handling অন্যতম। Groovy তে আপনি runtime এর সময় নতুন মেথড এবং প্রপার্টি যুক্ত করতে পারেন, যা Java তে সম্ভব নয়। এই বৈশিষ্ট্যটি Groovy কে আরও নমনীয় এবং শক্তিশালী করে তোলে।
Groovy তে আপনি runtime এ অবজেক্টে নতুন মেথড যুক্ত করতে পারেন, যা Java তে সম্ভব নয়। Groovy এর MetaClass বৈশিষ্ট্যের মাধ্যমে এটি করা যায়। এটি এমন একটি টেকনিক যা আপনাকে ক্লাসের behaviour পরিবর্তন করার সুযোগ দেয় এবং নতুন মেথড তৈরি করতে সহায়তা করে।
class Person {
String name
int age
}
def person = new Person(name: "John", age: 30)
// Dynamic method addition using MetaClass
Person.metaClass.sayHello = { -> "Hello, my name is ${delegate.name}" }
println person.sayHello() // Output: Hello, my name is John
এখানে:
Person
ক্লাসের জন্য sayHello
নামক একটি নতুন মেথড runtime এ যোগ করেছি।metaClass
এর মাধ্যমে Groovy নতুন মেথডটি Person
ক্লাসের সাথে যুক্ত করেছে।মেটা-ক্লাস (MetaClass) Groovy এর একটি শক্তিশালী ফিচার যা অবজেক্টের behaviour পরিবর্তন করতে সক্ষম। এটি Groovy তে একটি ক্লাসের নতুন মেথড যুক্ত করার জন্য ব্যবহৃত হয়, যা runtime এ করা হয়।
Groovy তে ডাইনামিক প্রপার্টি হ্যান্ডলিং অনেক সহজ। Groovy তে আপনি runtime এ একটি অবজেক্টের প্রপার্টি (field) তৈরি এবং পরিচালনা করতে পারেন, এবং নতুন প্রপার্টি যুক্ত করতে পারেন।
Groovy এর Property Handling এর মাধ্যমে আপনি ডাইনামিকভাবে getter এবং setter মেথড তৈরি করতে পারেন। আপনি যদি একটি প্রপার্টি অ্যাক্সেস করার চেষ্টা করেন যা ক্লাসে ডিফাইন করা নেই, Groovy এটি runtime এ তৈরি করে দেয়।
class Person {
String name
int age
}
def person = new Person(name: "John", age: 30)
// Accessing dynamic property that is not defined in the class
person.city = "New York" // Adding a dynamic property
println person.city // Output: New York
এখানে:
city
নামক একটি নতুন প্রপার্টি Person
ক্লাসের instance এর মাধ্যমে ডাইনামিকভাবে তৈরি করা হয়েছে।city
প্রপার্টি অ্যাক্সেস করা সম্ভব হয়েছে, এবং এটি runtime এ person
অবজেক্টে যুক্ত হয়ে গেছে।Groovy তে আপনি ডাইনামিকভাবে getter এবং setter মেথডও তৈরি করতে পারেন।
class Person {
String name
int age
}
def person = new Person(name: "Alice", age: 25)
// Dynamic setter and getter for a property
person.metaClass.getCity = { -> "New York" }
person.metaClass.setCity = { city -> println "City set to: $city" }
println person.city // Output: New York
person.city = "Los Angeles" // Output: City set to: Los Angeles
এখানে:
city
নামক একটি প্রপার্টি metaClass
ব্যবহার করে ডাইনামিকভাবে getter এবং setter মেথডের মাধ্যমে অ্যাক্সেস করা হয়েছে।person.city
অ্যাক্সেস করেন, তখন এটি New York
রিটার্ন করবে।person.city = "Los Angeles"
কল করলে, setter মেথড কার্যকর হবে এবং "City set to: Los Angeles"
প্রিন্ট করবে।Groovy তে Dynamic Method Addition এবং Property Handling শক্তিশালী বৈশিষ্ট্য যা কোড লেখার সময় নমনীয়তা এবং কার্যকারিতা বাড়ায়। Groovy তে metaClass
ব্যবহার করে আপনি runtime এ নতুন মেথড এবং প্রপার্টি যুক্ত করতে পারেন, যা Java তে সম্ভব নয়। এই বৈশিষ্ট্যগুলি Groovy কে একটি অত্যন্ত নমনীয় এবং শক্তিশালী প্রোগ্রামিং ভাষা করে তোলে।
common.read_more