سلام.
چه جوری میشه توی #C فقط یه شیء از یک کلاس درست کرد. یعنی هر بار که شیء جدیدی از اون کلاس تعریف می کنیم و new می کنیم همون قبلیه بیاد و مقادیر قبلیش رو داشته باشه؟؟؟
من فقط می دونم که یکی از Design Pattern های #C هستش، ولی درباره ی اونا چیزی نمی دونم! اگه کمکم کنید ممنون میشم.
اسم Design Pattern مورد نظر شما Singleton هست. بطور خيلي خلاصه:
1- contructor كلاس مورد نظر رو private ميكنيم:
کد:
class Person
{
private Person()
{
}
}
2- يه property فقط خواندني از نوع كلاس مي سازيم و staticش مي كنيم.
کد:
class Person
{
private Person()
{
}
public static Person Instance
{ get{ ... }}
}
3- backing field مربوطه رو private و static مي سازيم:
کد:
class Person
{
private Person()
{
}
private static Person _Instance;
public static Person Instance
{ get{ ... }}
}
4- توي get اون property، مطمئن مي شيم كه backing field مقدار داره. اگه نداشت مقدار مي ديم. و بعد برش مي گردونيم.
کد:
class Person
{
private Person()
{
}
private static Person _Instance;
public static Person Instance
{ get{
if(_Instance == null) _Instance = new Person();
return _instance; }}
}
طرز استفاده:
کد:
var person = Person.Instance;