الگوی "Chain of Method" یا زنجیرهای از متدها (Method Chaining) در سیشارپ به شما این امکان را میدهد که چندین متد را به صورت زنجیرهای و پشت سر هم فراخوانی کنید. این تکنیک معمولاً برای بهبود خوانایی کد و ایجاد یک رابط کاربری سادهتر استفاده میشود.
برای پیادهسازی این الگو، میتوانیم نوع بازگشتی متدها را به نوعی از خود شیء تنظیم کنیم. به این ترتیب میتوانیم از یک شیء برای فراخوانی متدهای مختلف استفاده کنیم.
در زیر یک مثال ساده از پیادهسازی این الگو در سیشارپ آورده شده است:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person SetName(string name)
{
Name = name;
return this; // بازگشت به خود شیء
}
public Person SetAge(int age)
{
Age = age;
return this; // بازگشت به خود شیء
}
public void DisplayInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}");
}
}
class Program
{
static void Main(string[] args)
{
var person = new Person()
.SetName("Ali")
.SetAge(30);
person.DisplayInfo(); // خروجی: Name: Ali, Age: 30
}
}
توضیحات:
- کلاس Person: یک کلاس ساده به نام
Person ساختهایم که شامل دو ویژگی Name و Age است.
- متدهای SetName و SetAge: این متدها به ترتیب نام و سن را تنظیم میکنند و در پایان خود شیء (
this) را برمیگردانند.
- استفاده از زنجیره متدها: در متد
Main، میتوانیم به راحتی متدهای SetName و SetAge را به صورت زنجیرهای فراخوانی کنیم.
- نمایش اطلاعات: متد
DisplayInfo برای نمایش اطلاعات شخص استفاده میشود.
این الگو به شما این امکان را میدهد که کدی واضحتر و مختصرتر بنویسید.
الگوی "Chain of Method" یا زنجیرهای از متدها (Method Chaining) در سیشارپ به شما این امکان را میدهد که چندین متد را به صورت زنجیرهای و پشت سر هم فراخوانی کنید. این تکنیک معمولاً برای بهبود خوانایی کد و ایجاد یک رابط کاربری سادهتر استفاده میشود.
برای پیادهسازی این الگو، میتوانیم نوع بازگشتی متدها را به نوعی از خود شیء تنظیم کنیم. به این ترتیب میتوانیم از یک شیء برای فراخوانی متدهای مختلف استفاده کنیم.
در زیر یک مثال ساده از پیادهسازی این الگو در سیشارپ آورده شده است:
توضیحات:
Personساختهایم که شامل دو ویژگیNameوAgeاست.this) را برمیگردانند.Main، میتوانیم به راحتی متدهایSetNameوSetAgeرا به صورت زنجیرهای فراخوانی کنیم.DisplayInfoبرای نمایش اطلاعات شخص استفاده میشود.این الگو به شما این امکان را میدهد که کدی واضحتر و مختصرتر بنویسید.