单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。” 特点:一是某个类只能有一个实例; 二是它必须自行创建这个实例; ...
单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”
特点:一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。
一、经典实现
using System;namespace SingletonPattern{ // 经典写法 // sealed 阻止其他类从该类继承 public sealed class ClassicalSample { // 用来保存唯一实例 private static ClassicalSample _classicalSample; // 锁范围 private static readonly object obj = new object(); // 私有构造函数,阻止外部new实例化 private ClassicalSample() { Console.WriteLine("实例化"); } // 统一该类的 public static ClassicalSample GetInstance() { // 减少锁的开销 if (_classicalSample == null) { // 防止多get='_blank'>线程并发 lock (obj) { // if (_classicalSample == null) { _classicalSample = new ClassicalSample(); } } } Console.WriteLine("获取实例"); return _classicalSample; } }}
原标题:一、单例模式(Singleton)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。