这里写的代码,相当于《Head First 设计模式》的读书笔记,原书是java的,自己在学习的过程中将其翻译为C#:(一)剖析经典的单件模式实现 单件模式 -- 确保一个类只有一个实例,并提供一个全局访问点 -- 单件模式的类图可以说是所有模式的类图中最简单的 -- 有 ...
这里写的代码,相当于《Head First 设计模式》的读书笔记,原书是java的,自己在学习的过程中将其翻译为C#:
(一)剖析经典的单件模式实现
单件模式
-- 确保一个类只有一个实例,并提供一个全局访问点
-- 单件模式的类图可以说是所有模式的类图中最简单的
-- 有一些对象其实我们只需一个,如get='_blank'>线程池、缓存、对话框、处理偏好设置和注册表的对象、日志对象和充当打印机、显卡等设备的驱动程序的对象等。如果制造出多个实例,可能导致许多问题,如程序的行为异常、资源使用过度,或者结果不一致等
1.新建一个控制台应用程序:SingletonPatternDemo。
2.新建一个类:Singleton.cs
1 namespace SingletonPatternDemo 2 { 3 public class Singleton 4 { 5 /// <summary> 6 /// 利用一个静态变量来记录Singleton类的唯一实例 7 /// </summary> 8 private static Singleton _uniqueInstance; 9 10 //这里是其它变量...11 12 /// <summary>13 /// 构造器私有化:只能在类内部才能调用构造器14 /// </summary>15 private Singleton() { }16 17 /// <summary>18 /// 只能通过该方法获取到对象实例19 /// </summary>20 /// <returns></returns>21 public static Singleton GetInstance()22 {23 //【注意】如果我们不需要该实例,它就永远不会产生。这就是“延迟实例化”(lazy instantiaze)24 return _uniqueInstance ?? (_uniqueInstance = new Singleton());25 26 #region 上行相当于以下代码27 //if (_uniqueInstance == null)28 //{29 // _uniqueInstance = new Singleton();30 //}31 32 //return _uniqueInstance;33 #endregion34 }35 36 //这里是其它方法...37 }38 }
原标题:C#设计模式:单件(例)模式
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。