单例模式(Singleton Pattern)

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

示例
保证一个类仅有一个实例。

  

  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

最新文章

  1. JavaScript Patterns 3.2 Custom Constructor Functions
  2. 转!sqlServer2000 表连接查询
  3. poj 2377 Bad Cowtractors
  4. 看过的bootstrap书籍(附下载地址)
  5. vim中光标的前进和后退
  6. jQuery包裹节点用法完整示例
  7. 【转载】国内网站博客数据统计选免费Google Analytics还是百度统计
  8. Solr在结果返回函数值
  9. Android自定义控件之TextView
  10. CentOS 7 yum 安装ownCloud 搭建云盘服务器
  11. 如何用UPA优化性能?先读懂这份报告!
  12. 安卓TV开发(十) 智能电视开发之在线视频直播
  13. Java代码登录拦截器例子
  14. 64位的windows服务安装问题
  15. Java核心技术卷一基础知识-第5章-继承-读书笔记
  16. 对空间数据(Shape)重新排序
  17. [bzoj3123][洛谷P3302] [SDOI2013]森林(树上主席树+启发式合并)
  18. OpenGl 知识一
  19. smarty学习——高级知识
  20. 自己写的jQuery放大镜插件效果(一)(采用一张大图和一张小图片的思路)

热门文章

  1. mac date命令
  2. Python Flask 配置文件
  3. 【面试题】2018年最全Java面试通关秘籍汇总集!
  4. 论文笔记-RCNN
  5. python模块之HTMLParser
  6. 循序渐进PYTHON3(十三) --3-- DJANGO之FORM表单(为自动生成的HTML标签添加样式)
  7. 第八届山东省ACM大学生程序设计竞赛个人总结
  8. 第4天:Ansible模块
  9. 第2天:Ansible-Inventory管理
  10. oracle中 char,varchar,varchar2的区别