单例模式

Posted 挨踢淫才

tags:

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

1.) Java版本

 1 package com.tone.test;
 2 
 3 public class Singleton
 4 {
 5 // 饿汉模式
 6 //    private static Singleton singleton = new Singleton();
 7 //    
 8 //    private Singleton()
 9 //    {
10 //        
11 //    }
12 //    
13 //    public static Singleton getSingleton()
14 //    {
15 //        return singleton;
16 //    }
17 
18     // 懒汉模式: 双重检查锁定
19     private static Singleton singleton = null;
20     
21     private Singleton()
22     {
23         
24     }
25     
26     public static Singleton getSingleton()
27     {
28         if (null == singleton)
29         {
30             synchronized (Singleton.class)
31             {
32                 if (null == singleton)
33                 {
34                     singleton = new Singleton();
35                 }
36             }
37         }
38         
39         return singleton;
40     }
41 }

 

2.) C++版本

 1 class Singleton
 2 {
 3 public:
 4     static Singleton & getInstance()
 5     {
 6         static Singleton instance;
 7         return instance;
 8     }
 9 
10 private:
11     Singleton()
12     {
13 
14     }
15 
16     ~Singleton()
17     {
18 
19     }
20 
21     Singleton(const Singleton&)
22     {
23 
24     }
25     
26     Singleton& operator=(const Singleton&)
27     {
28 
29     }    
30 };

 

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

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

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

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

单例模式以及静态代码块