روش استفاده از اولگوهای سینگلتون توی فرم های پارامتر دار چطوریه
Printable View
روش استفاده از اولگوهای سینگلتون توی فرم های پارامتر دار چطوریه
میتونی پارامترهات به یک متد مثل InitValue یا یه همچین قرار بدی .
public static readonly Form1 Instance=new Form1();
public DialogResult ShowDialogByValue(params int args)
{
//do Something
}
//use
Form1.Instance.ShowDialogByValue(1,2);
ممکنه بیشتر توضیح بدید
کسی نمیدونه
سلام.
ببینید این فایل بدردتون می خوره یا نه.
http://piroozman.googlepages.com/DesignPatterns.rar
ممنونم ولی این مطالب رو میدونم
مشکل من اینه که سازنده های فرمهام اکثرا پارامتر دارن و من نمیتونم الگوی سینگلتون رو براشون اجرا کنم
با عرض سلام
دوست عزیز ابتدا شما باید موضع خود رو درباره مسئله زیر مشخص کنید:
اگر فرم شما که قرار است به صورت سینگلتون باشد با پارامتر x فراخوانی شده و یک نمونه از آن ایجاد شده حالا اگر با پارامتر y فراخوانی شود آیا باید در این فرم که از قبل ایجاد شده ، چگونه این پارامتر تاثیر کند.
آیا باید در فرم تغییر ایجاد شود یا بدون تغییر بماند؟
با فرض اینکه باید تغییر ایجاد شود بنده یک مثال میزنم.
اگر کلاس سینگلتون ما به صورت زیر باشد:
sealed class SingletonClass
{
// Static members are lazily initialized.
// .NET guarantees thread safety for static initialization
private static readonly SingletonClass instance =
new SingletonClass();
// Note: constructor is private.
private SingletonClass() { }
public static SingletonClass GetInstance()
{
return instance;
}
}
بنده این کلاس رو اصلاح کردم و به صورت پارامتریک درآوردم که این پارامتر در فرم ایجاد شده و یا از قبل موجود ، تاثیر می گذارد
sealed class SingletonClass
{
// Static members are lazily initialized.
// .NET guarantees thread safety for static initialization
private static SingletonClass instance =
new SingletonClass(0);
//this is a private field
int n;
// Note: constructor is private.
private SingletonClass(int x)
{
this.n = x;
}
public static SingletonClass GetInstance(int x)
{
if (instance == null)
{
instance = GetInstance(x);
return instance;
}
else
{
instance.n = x;
return instance;
}
}
}