Model ক্লাসে প্রপার্টি এবং মেথড সংজ্ঞায়িত করা হল MVVM বা MVP প্যাটার্নের মধ্যে গুরুত্বপূর্ণ অংশ। এটি অ্যাপ্লিকেশনের ডেটা এবং বিজনেস লজিক পরিচালনার জন্য ব্যবহৃত হয়। Model ক্লাসের প্রপার্টি সাধারণত ডেটার কাঠামো (structure) এবং তার মান (value) ধারণ করে, এবং মেথডগুলি ডেটার সাথে কাজ করার জন্য নির্দিষ্ট কার্যক্রম সম্পাদন করে।
Model ক্লাসের প্রপার্টি সংজ্ঞায়িত করা
প্রপার্টি ক্লাসের ভেরিয়েবলগুলোর জন্য getter এবং setter মেথড প্রদান করে। এগুলি ডেটার অ্যাক্সেস এবং ম্যানিপুলেশন করার উপায় দেয়।
উদাহরণ:
ধরা যাক, আমরা একটি Product নামের ক্লাস তৈরি করব, যেখানে প্রপার্টি হবে Name, Price, এবং Quantity।
public class Product
{
// প্রপার্টি: Name
public string Name { get; set; }
// প্রপার্টি: Price
public decimal Price { get; set; }
// প্রপার্টি: Quantity
public int Quantity { get; set; }
}
এখানে, Name, Price, এবং Quantity হল Product ক্লাসের প্রপার্টি। এগুলি দিয়ে ডেটার মান গ্রহণ এবং সেট করা হয়। প্রপার্টির মান পরিবর্তন বা অ্যাক্সেস করার জন্য getter এবং setter ব্যবহৃত হয়।
Model ক্লাসের মেথড সংজ্ঞায়িত করা
Model ক্লাসে মেথডগুলি ডেটা প্রসেসিং বা বিজনেস লজিক সম্পাদন করার জন্য ব্যবহৃত হয়। যেমন, কোন প্রোডাক্টের মোট মূল্য গণনা করা, ডেটাবেসে তথ্য সেভ বা আপডেট করা ইত্যাদি। মেথডগুলি প্রপার্টির মান ব্যবহার করে নির্দিষ্ট কাজগুলো সম্পাদন করে।
উদাহরণ:
- CalculateTotalPrice মেথড: এই মেথডটি প্রোডাক্টের মোট মূল্য গণনা করে, যা
PriceএবংQuantityএর গুণফল হবে।
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
// মেথড: মোট মূল্য হিসাব করা
public decimal CalculateTotalPrice()
{
return Price * Quantity;
}
}
এখানে, CalculateTotalPrice মেথড প্রোডাক্টের মোট মূল্য হিসাব করে এবং সেই মান রিটার্ন করে।
- IsInStock মেথড: এই মেথডটি চেক করবে, প্রোডাক্টটি স্টকে আছে কিনা, অর্থাৎ
Quantity0 এর বেশি কিনা।
public bool IsInStock()
{
return Quantity > 0;
}
এই মেথডটি প্রোডাক্টের স্টক চেক করতে ব্যবহৃত হয় এবং স্টকে থাকলে true রিটার্ন করবে।
Model ক্লাসের অন্যান্য কার্যকরী মেথড
CRUD অপারেশন (Create, Read, Update, Delete) করার জন্য মেথড তৈরি করা হয়। তবে, এখানে মেথডগুলোর উদাহরণ দেওয়া হলো যা ডেটা ম্যানিপুলেশন বা বিজনেস লজিকের অংশ:
- UpdatePrice মেথড: একটি প্রোডাক্টের দাম আপডেট করতে একটি মেথড।
public void UpdatePrice(decimal newPrice)
{
if (newPrice >= 0)
{
Price = newPrice;
}
else
{
throw new ArgumentException("Price cannot be negative");
}
}
- ApplyDiscount মেথড: একটি ডিসকাউন্ট প্রয়োগ করার জন্য একটি মেথড।
public void ApplyDiscount(decimal discountPercentage)
{
if (discountPercentage > 0 && discountPercentage <= 100)
{
Price -= Price * discountPercentage / 100;
}
else
{
throw new ArgumentException("Invalid discount percentage");
}
}
Model ক্লাসে Validation
মডেল ক্লাসের মধ্যে প্রপার্টি বা মেথডের মান যাচাই করার জন্য validation যুক্ত করা হয়, যা ডেটার সঠিকতা নিশ্চিত করে।
উদাহরণ:
public class Product
{
private decimal _price;
public string Name { get; set; }
// প্রপার্টি: Price with validation
public decimal Price
{
get { return _price; }
set
{
if (value < 0)
throw new ArgumentException("Price cannot be negative");
_price = value;
}
}
public int Quantity { get; set; }
// মেথড: CalculateTotalPrice
public decimal CalculateTotalPrice()
{
return Price * Quantity;
}
}
এখানে, Price প্রপার্টিতে যদি একটি নেগেটিভ মান দেওয়া হয়, তবে ArgumentException থ্রো করা হবে, যা ডেটার সঠিকতা নিশ্চিত করে।
সারাংশ
Model ক্লাসে প্রপার্টি এবং মেথড সংজ্ঞায়িত করা অ্যাপ্লিকেশনের ডেটা এবং বিজনেস লজিকের ম্যানেজমেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ। প্রপার্টিগুলি ডেটার অ্যাক্সেস এবং সংরক্ষণ করে, এবং মেথডগুলি সেই ডেটার সাথে কাজ করার জন্য লজিক প্রয়োগ করে। এই প্রক্রিয়াটি অ্যাপ্লিকেশনের কার্যকারিতা এবং ডেটা সঠিকতার উন্নতি ঘটাতে সাহায্য করে।
Read more