Skip to content

Head First 设计模式 05-单件模式

🏷️ 《Head First 设计模式》

单件模式 确保一个类只有一个实例,并提供一个全局访问点。

也叫 单例模式

这种模式在项目中还是比较常见的(如 线程池、缓存 等),理解起来也非常简单。

C# 中的常用写法如下。需要用到 lock 关键字,Java 中则需要使用 synchronized 关键字。

csharp
public class Singleton
{
    private static object _obj_lock = new object();
    private static Singleton _instance;

    private Singleton() { }

    public static Singleton Instance
    {
        get
        {
            if (_instance == null)
            {
                lock (_obj_lock)
                {
                    if (_instance == null)
                    {
                        _instance = new Singleton();
                    }
                }
            }
            return _instance;
        }
    }
}