单例模式

Posted

tags:

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

单例模式,解决在使用对象实例时每次都需要声明的麻烦,其声明方式如下:

 1  /// <summary>
 2     /// 实例对象
 3     /// </summary>
 4     public class Singleton
 5     {
 6         static Singleton _install = null;
 7 
 8         //声明一个静态对象,解决多线程同时调用单例对象
 9         private static object lockObj = new object();
10 
11         /// <summary>
12         /// 构造函数声明为私有的,防止外部对象通过构造函数声明对象实例
13         /// </summary>
14         private Singleton() { }
15 
16         /// <summary>
17         /// 单例对象实例
18         /// </summary>
19         public static Singleton Install
20         {
21             get
22             {
23                 //判断单例对象是否被声明
24                 if(_install==null)
25                 {
26                     //如果没有被声明则加锁声明实例对象,加锁防止多线程同时调用
27                     lock(lockObj)
28                     {
29                         //再次判断是否已被声明,若没有则声明实例
30                         if (_install == null)
31                             _install = new Singleton();
32                     }
33                 }
34 
35                 return _install;
36             }
37         }
38     }

 

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

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

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

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

单例模式以及静态代码块