面向对象设计模式 总结归纳 02单例模式
Posted 765boy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象设计模式 总结归纳 02单例模式相关的知识,希望对你有一定的参考价值。
单例模式【单件模式】【Singleton Pattern】
保证一个类仅有一个实例,并提供一个该实例的全局访问点。
示例1:
C# Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class Singleton
{ public static readonly Singleton Instance; /// <summary> /// 静态构造器,能保证多线程安全。多线程状态下,只有一个线程能访问静态构造器。 /// 静态构造器,只能实现一个无参数的静态构造函数。 /// 可有使用属性,进行实例化的参数传递。或者使用方法实现。 /// </summary> static Singleton() { Instance = new Singleton(); } private Singleton() { } } |
示例2:【示例1的简化写法】
C# Code
1
2 3 4 5 6 |
class Singleton
{ public static readonly Singleton Instance = new Singleton();//能够自动生成静态构造函数。 private Singleton() { } } |
示例3:【带参数】
C# Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/// <summary>
/// 多线程单例模式,带参数 /// </summary> public class Singleton { private static volatile Singleton instance = null;//防止编译器微调。 private static object lockHelper = new object();//辅助器 private Singleton(int i) { } public static Singleton GetInstance(int i) { if (instance == null) { lock (lockHelper)//加锁 { if (instance == null)//双检查 { instance = new Singleton(i); } } } return instance; } } |
以上是关于面向对象设计模式 总结归纳 02单例模式的主要内容,如果未能解决你的问题,请参考以下文章