zoukankan      html  css  js  c++  java
  • 单例模式

    定义

    确保一个类在程序中只有一个实例并提供一个访问它的全局访问点。

    类图

    代码

     1    public class SingleTon
     2     {
     3         private static object mLock = new object();
     4         private SingleTon()
     5         { }
     6         private static SingleTon instance;
     7         public static SingleTon GetInstance()
     8         {
     9             if (instance == null)
    10             {
    11                 lock (mLock)
    12                 {
    13                     if (instance == null)
    14                     {
    15                         instance = new SingleTon();
    16                     }
    17                 }
    18             }
    19             return instance;
    20 
    21         }
    22     }

    总结

    曾经非常纠结,为什么不用静态的类来代替单例。后来才知道,静态不能保证程序中只有一个这个类的实例,甚至可能会新建,所以它并不能替换。

    也曾考虑为什么在获取实例处要判断两次if (instance == null)--这个则是考虑两个线程同时到达时锁前锁后重复创建的严谨性与正确性。

    关于恶汉模式(private static SingleTon instance=new SingleTon();),定义变量时初始化,则在类第一次被访问时触发初始化,以后就可以实习单例的重复使用了,这样也是可行的。

    Top
    收藏
    关注
    评论
  • 相关阅读:
    用简单的方法解决问题
    记一次调试
    工作笔记还是蛮有用
    35岁往上做什么
    2013年个人总结
    一个C++宏定义与枚举定义重复的编译错误
    动态库的麻烦之处
    谈谈软件项目的dependency
    创建pathing jar
    谈谈patch strategy
  • 原文地址:https://www.cnblogs.com/Joy-et/p/4876196.html
Copyright © 2011-2022 走看看