乐在其中设计模式(C#) - 单例模式(Singleton Pattern)【转】
2013-08-18 12:36
281 查看
介绍
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
示例
保证一个类仅有一个实例。
Test
运行结果
2007-2-10 22:35:11
2007-2-10 22:35:11
2007-2-10 22:35:14
2007-2-10 22:35:17
[索引页]
[源码下载]
***********************************************************************************************
*【Author】:webabcd
*【Date】:2013年08月18日
*【URL】:http://www.cnblogs.com/webabcd/archive/2007/04/01/696021.html
*【Notice】:
*1、本文为原创技术文章,首发博客园个人站点。
*2、请尊重原创的成果,转载和引用请注明作者及出处。
*3、本文必须全文转载和引用,任何组织和个人未授权不能修改任何内容,并且未授权不可用于商业。
*4、本声明为文章一部分,转载和引用必须包括在原文中。
***********************************************************************************************
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
示例
保证一个类仅有一个实例。
Singleton
using System; using System.Collections.Generic; using System.Text; namespace Pattern.Singleton { /// <summary> /// 泛型实现单例模式 /// </summary> /// <typeparam name="T">需要实现单例的类</typeparam> public class Singleton<T> where T : new() { /// <summary> /// 返回类的实例 /// </summary> public static T Instance { get { return SingletonCreator.instance; } } class SingletonCreator { internal static readonly T instance = new T(); } } }
Test
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using Pattern.Singleton; public partial class Singleton : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // 使用单例模式,保证一个类仅有一个实例 Response.Write(Singleton<Test>.Instance.Time); Response.Write("<br />"); Response.Write(Singleton<Test>.Instance.Time); Response.Write("<br />"); // 不用单例模式 Test t = new Test(); Response.Write(t.Time); Response.Write("<br />"); Test t2 = new Test(); Response.Write(t2.Time); Response.Write("<br />"); } } public class Test { private DateTime _time; public Test() { System.Threading.Thread.Sleep(3000); _time = DateTime.Now; } public string Time { get { return _time.ToString(); } } }
运行结果
2007-2-10 22:35:11
2007-2-10 22:35:11
2007-2-10 22:35:14
2007-2-10 22:35:17
[索引页]
[源码下载]
***********************************************************************************************
*【Author】:webabcd
*【Date】:2013年08月18日
*【URL】:http://www.cnblogs.com/webabcd/archive/2007/04/01/696021.html
*【Notice】:
*1、本文为原创技术文章,首发博客园个人站点。
*2、请尊重原创的成果,转载和引用请注明作者及出处。
*3、本文必须全文转载和引用,任何组织和个人未授权不能修改任何内容,并且未授权不可用于商业。
*4、本声明为文章一部分,转载和引用必须包括在原文中。
***********************************************************************************************
相关文章推荐
- 乐在其中设计模式(C#) - 原型模式(Prototype Pattern)
- 乐在其中设计模式(C#) - 组合模式(Composite Pattern)
- 乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern)
- 乐在其中设计模式(C#) - 命令模式(Command Pattern)
- 乐在其中设计模式(C#) - 单例模式(Singleton Pattern)
- 乐在其中设计模式(C#) - 状态模式(State Pattern)
- 乐在其中设计模式(C#) - 原型模式(Prototype Pattern)
- 乐在其中设计模式(C#) - 组合模式(Composite Pattern)
- 乐在其中设计模式(C#) - 享元模式(Flyweight Pattern)
- 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern)
- 乐在其中设计模式(C#) - 策略模式(Strategy Pattern)
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 乐在其中设计模式(C#) - 建造者模式(Builder Pattern)
- 乐在其中设计模式(C#) - 装饰模式(Decorator Pattern)
- 乐在其中设计模式(C#) - 享元模式(Flyweight Pattern)
- 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern)
- 乐在其中设计模式(C#) - 状态模式(State Pattern)
- 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern)