一、单例模式:
单例模式(Singleton),保证一个类仅有一个实例,并提供一个全局访问点。
单例模式特点:
1、单例类仅有一个实例。
2、单例类自身保存他的唯一实例。
3、单例类提供一个可以访问该实例的方法。
单例模式应用:
第一、控制资源的使用,通过线程同步来控制资源的并发访问;
第二、控制实例产生的数量,达到节约资源的目的。
第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。
* 每台计算机可以有若干个打印机,但只能有一个Printer Spooler,避免两个打印作业同时输出到打印机。
* 一个具有自动编号主键的表可以有多个用户同时使用,但数据库中只能有一个地方分配下一个主键编号。否则会出现主键重复。
二、 Singleton模式的结构:
三、Singleton模式实现方式-静态初始化
c#公共语言运行库也提供一种‘静态初始化’方法,这种方法不需要开发人员显示的编写线程安全代码,就可解决多线程下安全问题。
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)