乐在其中设计模式(C#) - 单例模式(Singleton Pattern)


乐在其中设计模式(C#) - 单例模式(Singleton Pattern)


作者:webabcd


介绍
保证一个类仅有一个实例,并提供一个访问它的全局访问点。


示例
保证一个类仅有一个实例。
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)
Singleton
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Text; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)namespace Pattern.Singleton 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        /// <summary> 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        /// 泛型实现单例模式 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        /// </summary> 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        /// <typeparam name="T">需要实现单例的类</typeparam> 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        public class Singleton<T> where T : new() 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        { 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                /// <summary> 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                /// 返回类的实例 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                /// </summary> 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                public static T Instance 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                { 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                        get { return SingletonCreator.instance; } 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                } 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                class SingletonCreator 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                { 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                        internal static readonly T instance = new T(); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                } 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        } 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)}
 
Test
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Data; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Configuration; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Collections; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Web; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Web.Security; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Web.UI; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Web.UI.WebControls; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Web.UI.WebControls.WebParts; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using System.Web.UI.HtmlControls; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)using Pattern.Singleton; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)public partial class Singleton : System.Web.UI.Page 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        protected void Page_Load(object sender, EventArgs e) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        { 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                // 使用单例模式,保证一个类仅有一个实例 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Response.Write(Singleton<Test>.Instance.Time); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Response.Write(Singleton<Test>.Instance.Time); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                // 不用单例模式 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Test t = new Test(); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Response.Write(t.Time); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Test t2 = new Test(); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Response.Write(t2.Time); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        } 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)
乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)public class Test 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        private DateTime _time; 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        public Test() 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        { 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                System.Threading.Thread.Sleep(3000); 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                _time = DateTime.Now;         
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        } 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        public string Time 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        { 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)                get { return _time.ToString(); } 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)        } 
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)}
 
 
运行结果
2007-2-10 22:35:11
2007-2-10 22:35:11
2007-2-10 22:35:14
2007-2-10 22:35:17


参考
http://www.dofactory.com/Patterns/PatternSingleton.aspx



OK
[源码下载] 
 
 


     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/344515,如需转载请自行联系原作者



上一篇:大数据开发过程中的5个学习通用步骤


下一篇:Virgin Hyperloop One如何使用Koalas将处理时间从几小时降到几分钟--无缝的将pandas切换成Apache Spark指南