单例模式

Posted Mark;D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式相关的知识,希望对你有一定的参考价值。

CommonUtility文件中写这个方法
/// 把类的构造函数访问权限设置为private,则该类不能在外界被new了
/// 在当前类型中创建一个静态的方法,用该静态方法来返回一个对象
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace CommonUtility
 8 {
 9     public class Singleton<T> where T : class,new()
10     {
11         /// <summary>
12         /// 单列模式
13         /// </summary>
14         /// <typeparam name="T"></typeparam>
15         private static T _instance = null;
16         public static readonly Object obj = new object();
17         public static T Instance()
18         {
19             if (_instance == null)
20             {
21                 lock (obj)
22                 {
23                     return _instance = Activator.CreateInstance<T>();
24                 }
25             }
26             return _instance;
27         }
28     }
29 }
在BLL或者DAL调用时需要先引用CommonUtility。

1
public static new CContractMgrBLL Instance 2 { 3   get { return Singleton<CContractMgrBLL>.Instance(); } 4 }

作用:单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点。

以上是关于单例模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

单例片段或保存网页视图状态

你熟悉的设计模式都有哪些?写出单例模式的实现代码

单例模式以及静态代码块