码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2017-03-03 18:51:40      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:get   logs   多线程   lock   没有   方式   单例对象   解决   static   

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

 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     }

 

单例模式

标签:get   logs   多线程   lock   没有   方式   单例对象   解决   static   

原文地址:http://www.cnblogs.com/chaselz/p/6498040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!