الگوی طراحی C#: نمونه اولیه – انجمن DEV
Summarize this content to 400 words in Persian Lang
الگوی Prototype زمانی استفاده می شود که شما نیاز به ایجاد اشیاء جدید از یک نمونه موجود به جای نمونه سازی مستقیم آنها دارید. این امکان کپی (کلونینگ) اشیاء را فراهم می کند، که زمانی مفید است که ایجاد یک شی جدید از ابتدا پیچیده یا پرهزینه باشد. این الگو معمولاً در موقعیتهایی استفاده میشود که شما نیاز به ایجاد چندین نمونه از اشیاء مشابه با تغییرات جزئی دارید، مانند ایجاد اسناد یا تصاویر گرافیکی در یک ویرایشگر و در عین حال برخی از ویژگیهای مشترک را حفظ کنید.
مثال کد سی شارپ:
// Prototype Interface
public interface IPrototype
{
T Clone();
}
// Concrete class implementing Prototype
public class Circle : IPrototype
{
public int Radius { get; set; }
public Circle(int radius)
{
Radius = radius;
}
public Circle Clone()
{
// Clone the current object
return new Circle(this.Radius);
}
public void ShowDetails()
{
Console.WriteLine($”Circle with radius: {Radius}”);
}
}
class Program
{
static void Main(string[] args)
{
// Create an original circle
Circle circle1 = new Circle(10);
circle1.ShowDetails(); // Output: Circle with radius: 10
// Clone the circle
Circle circle2 = circle1.Clone();
circle2.ShowDetails(); // Output: Circle with radius: 10
// Modify the clone
circle2.Radius = 20;
circle2.ShowDetails(); // Output: Circle with radius: 20
circle1.ShowDetails(); // Output: Circle with radius: 10
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
توضیح کد:
در این مثال، کلاس Circle واسط IPPrototype را پیاده سازی می کند که متد Clone را تعریف می کند. متد Clone یک نمونه جدید از Circle با ویژگی های مشابه شی اصلی ایجاد می کند. کد اصلی ایجاد یک دایره، شبیهسازی آن و اینکه چگونه تغییرات در شیء شبیهسازیشده بر روی اصلی تأثیر نمیگذارد را نشان میدهد.
نتیجه گیری:
الگوی پروتوتایپ برای ایجاد کارآمد کپی از اشیا ایده آل است، به خصوص زمانی که ایجاد اشیاء جدید از ابتدا پیچیده یا نیازمند منابع باشد. هنگامی که نیاز به ایجاد چندین شیء مشابه دارید، مفید است و به شما این امکان را می دهد که یک نمونه موجود را کپی کنید و در صورت نیاز آن را تغییر دهید.
کد منبع: GitHub
الگوی Prototype زمانی استفاده می شود که شما نیاز به ایجاد اشیاء جدید از یک نمونه موجود به جای نمونه سازی مستقیم آنها دارید. این امکان کپی (کلونینگ) اشیاء را فراهم می کند، که زمانی مفید است که ایجاد یک شی جدید از ابتدا پیچیده یا پرهزینه باشد. این الگو معمولاً در موقعیتهایی استفاده میشود که شما نیاز به ایجاد چندین نمونه از اشیاء مشابه با تغییرات جزئی دارید، مانند ایجاد اسناد یا تصاویر گرافیکی در یک ویرایشگر و در عین حال برخی از ویژگیهای مشترک را حفظ کنید.
مثال کد سی شارپ:
// Prototype Interface
public interface IPrototype
{
T Clone();
}
// Concrete class implementing Prototype
public class Circle : IPrototype
{
public int Radius { get; set; }
public Circle(int radius)
{
Radius = radius;
}
public Circle Clone()
{
// Clone the current object
return new Circle(this.Radius);
}
public void ShowDetails()
{
Console.WriteLine($"Circle with radius: {Radius}");
}
}
class Program
{
static void Main(string[] args)
{
// Create an original circle
Circle circle1 = new Circle(10);
circle1.ShowDetails(); // Output: Circle with radius: 10
// Clone the circle
Circle circle2 = circle1.Clone();
circle2.ShowDetails(); // Output: Circle with radius: 10
// Modify the clone
circle2.Radius = 20;
circle2.ShowDetails(); // Output: Circle with radius: 20
circle1.ShowDetails(); // Output: Circle with radius: 10
}
}
توضیح کد:
در این مثال، کلاس Circle واسط IPPrototype را پیاده سازی می کند که متد Clone را تعریف می کند. متد Clone یک نمونه جدید از Circle با ویژگی های مشابه شی اصلی ایجاد می کند. کد اصلی ایجاد یک دایره، شبیهسازی آن و اینکه چگونه تغییرات در شیء شبیهسازیشده بر روی اصلی تأثیر نمیگذارد را نشان میدهد.
نتیجه گیری:
الگوی پروتوتایپ برای ایجاد کارآمد کپی از اشیا ایده آل است، به خصوص زمانی که ایجاد اشیاء جدید از ابتدا پیچیده یا نیازمند منابع باشد. هنگامی که نیاز به ایجاد چندین شیء مشابه دارید، مفید است و به شما این امکان را می دهد که یک نمونه موجود را کپی کنید و در صورت نیاز آن را تغییر دهید.
کد منبع: GitHub