1 دقیقه میانگین مدت زمان مطالعه است

قبلا در مطلبی دیزاین پترن Singleton معرفی شده بود:

Singleton

یکی از روش‌های بهتر پیاده سازی این نوع کلاس استفاده از Lazy است که استفاده از Lock را غیر ضروری می‌کند.
استفاده از این روش خوبی‌های زیر را دارد:

  • ساده شدن کد و افزایش خوانایی آن
  • ازبین بردن هزینه استفاده از Lock
  • ازبین بردن سربار Init شدن کلاس در زمان‌هایی که به آن نیاز نیست
public sealed class Singleton
{
    private Singleton()
    {
        // Do some initialization here
    }

    public void DoSomething()
    {
        // Do something here
    }
}

private static Lazy<Singleton> lazy = new Lazy<Singleton>(() => new Singleton());

public static Singleton Instance
{
    get
    {
        return lazy.Value;
    }
}
class Program
{
    static void Main(string[] args)
    {
        var singleton = Singleton.Instance;

        singleton.DoSomething();

        // Print the hash code of the instance to verify that it is the same for all threads
        Console.WriteLine("Singleton instance {0}", singleton.GetHashCode());
    }
}

lazy

تگ ها: , ,

دسته بندی ها:

به روز شده در: