读书人

Thread-safe Singleton Pattern Examp

发布时间: 2012-08-24 10:00:21 作者: rapoo

Thread-safe Singleton Pattern Example in C#

?

The Singleton pattern is used when you need one, and only one instance of your class. Sometimes you see this pattern used in cases where the construction of a class is expensive (like a file stream). It can be lazy loaded (at runtime instead of compiletime) and must be thread-safe. The class gets a public method or property named Instance, responsible for creating the Singleton. The constructor of the Singleton class is private, so no one can construct a new instance from the class by applying ‘new’.

Thread-safe Singleton Pattern Example in C

using System;namespace Singleton{    class Program    {        static void Main(string[] args)        {            // Lazy loaded object            // Singleton gets created on first call            Singleton.Instance.SomeProperty = 0;            Singleton.Instance.SomeMethod();        }    }    public class Singleton    {        // Private constructor to prevent 'new'        private Singleton()        {        }        // The instance read only property        public static Singleton Instance        {            get            {                return Nested.instance;            }        }        // Nested class with the actual Singleton object        private class Nested        {            internal static readonly Singleton instance =                new Singleton();            static Nested()            {            }        }        // Additional methods and propeties        public int SomeProperty { get; set; }        public void SomeMethod() { }    }}

读书人网 >C#

热点推荐