Dynamic Method Addition এবং Property Handling

Computer Programming - গ্রুভি (Groovy) Meta-Programming in Groovy (মেটাপ্রোগ্রামিং) |
191
191

Groovy তে Dynamic Method Addition এবং Property Handling

Groovy একটি ডাইনামিক প্রোগ্রামিং ভাষা যা অনেকগুলো শক্তিশালী বৈশিষ্ট্য সরবরাহ করে, যার মধ্যে Dynamic Method Addition এবং Property Handling অন্যতম। Groovy তে আপনি runtime এর সময় নতুন মেথড এবং প্রপার্টি যুক্ত করতে পারেন, যা Java তে সম্ভব নয়। এই বৈশিষ্ট্যটি Groovy কে আরও নমনীয় এবং শক্তিশালী করে তোলে।

1. Dynamic Method Addition (ডাইনামিক মেথড অ্যাডিশন)

Groovy তে আপনি runtime এ অবজেক্টে নতুন মেথড যুক্ত করতে পারেন, যা Java তে সম্ভব নয়। Groovy এর MetaClass বৈশিষ্ট্যের মাধ্যমে এটি করা যায়। এটি এমন একটি টেকনিক যা আপনাকে ক্লাসের behaviour পরিবর্তন করার সুযোগ দেয় এবং নতুন মেথড তৈরি করতে সহায়তা করে।

উদাহরণ (Dynamic Method Addition):

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

এখানে:

  1. আমরা Person ক্লাসের জন্য sayHello নামক একটি নতুন মেথড runtime এ যোগ করেছি।
  2. metaClass এর মাধ্যমে Groovy নতুন মেথডটি Person ক্লাসের সাথে যুক্ত করেছে।

মেটা-ক্লাস (MetaClass) Groovy এর একটি শক্তিশালী ফিচার যা অবজেক্টের behaviour পরিবর্তন করতে সক্ষম। এটি Groovy তে একটি ক্লাসের নতুন মেথড যুক্ত করার জন্য ব্যবহৃত হয়, যা runtime এ করা হয়।


2. Dynamic Property Handling (ডাইনামিক প্রপার্টি হ্যান্ডলিং)

Groovy তে ডাইনামিক প্রপার্টি হ্যান্ডলিং অনেক সহজ। Groovy তে আপনি runtime এ একটি অবজেক্টের প্রপার্টি (field) তৈরি এবং পরিচালনা করতে পারেন, এবং নতুন প্রপার্টি যুক্ত করতে পারেন।

Groovy এর Property Handling এর মাধ্যমে আপনি ডাইনামিকভাবে getter এবং setter মেথড তৈরি করতে পারেন। আপনি যদি একটি প্রপার্টি অ্যাক্সেস করার চেষ্টা করেন যা ক্লাসে ডিফাইন করা নেই, Groovy এটি runtime এ তৈরি করে দেয়।

উদাহরণ (Dynamic Property Handling):

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

এখানে:

  1. city নামক একটি নতুন প্রপার্টি Person ক্লাসের instance এর মাধ্যমে ডাইনামিকভাবে তৈরি করা হয়েছে।
  2. Groovy তে কোন প্রপার্টি নির্ধারণ না করেও city প্রপার্টি অ্যাক্সেস করা সম্ভব হয়েছে, এবং এটি runtime এ person অবজেক্টে যুক্ত হয়ে গেছে।

Getter এবং Setter মেথডের সাথে Dynamic Property Handling:

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

এখানে:

  1. city নামক একটি প্রপার্টি metaClass ব্যবহার করে ডাইনামিকভাবে getter এবং setter মেথডের মাধ্যমে অ্যাক্সেস করা হয়েছে।
  2. আপনি যখন person.city অ্যাক্সেস করেন, তখন এটি New York রিটার্ন করবে।
  3. person.city = "Los Angeles" কল করলে, setter মেথড কার্যকর হবে এবং "City set to: Los Angeles" প্রিন্ট করবে।

Groovy তে Dynamic Method Addition এবং Property Handling এর সুবিধা

  1. নমনীয়তা: Groovy তে আপনি runtime এ কোড পরিবর্তন করতে পারেন, নতুন মেথড এবং প্রপার্টি যুক্ত করতে পারেন। এটি কোডকে আরো নমনীয় করে তোলে এবং দ্রুত ডেভেলপমেন্টে সহায়তা করে।
  2. ডাইনামিক আচরণ: মেথড এবং প্রপার্টি ডাইনামিকভাবে যোগ করার মাধ্যমে, কোডকে সহজে বিভিন্ন পরিস্থিতিতে অ্যাডজাস্ট করা সম্ভব হয়।
  3. কমপ্লেক্স অবজেক্টস: Groovy তে complex অবজেক্টের জন্য একাধিক behaviour এবং প্রপার্টি সহজেই যোগ করা যায় যা কোডকে আরো পরিষ্কার এবং সংক্ষিপ্ত রাখে।
  4. Code Reusability: Dynamic properties এবং methods আপনাকে পুনঃব্যবহারযোগ্য কোড লিখতে সাহায্য করে, যেখানে প্রপার্টি বা মেথডগুলো runtime এ সহজে পরিবর্তন করা যায়।

সারসংক্ষেপ

Groovy তে Dynamic Method Addition এবং Property Handling শক্তিশালী বৈশিষ্ট্য যা কোড লেখার সময় নমনীয়তা এবং কার্যকারিতা বাড়ায়। Groovy তে metaClass ব্যবহার করে আপনি runtime এ নতুন মেথড এবং প্রপার্টি যুক্ত করতে পারেন, যা Java তে সম্ভব নয়। এই বৈশিষ্ট্যগুলি Groovy কে একটি অত্যন্ত নমনীয় এবং শক্তিশালী প্রোগ্রামিং ভাষা করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion