单例模式(SingletonPattern)的设计模式及应用模式

单例模式(SingletonPattern)的设计模式及应用模式

单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象unity单例模式,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问3D场景,不需要实例化该类的对象。

注意:

单例模式编程_unity单例模式_简单的单例模式代码

C#中的单例模式

懒汉单例:

public class DanLi : MonoBehaviour {
    //懒汉单例
    private DanLi() { } //私有构造函数
    private static DanLi instance = null;//私有静态类对象
    public static DanLi Instance()//公共静态返回值为自身类的方法
    {
        if (instance == null)
        {
            instance = new DanLi();
        }
        return instance;
    }
}

优点:第一次调用才会初始化,避免内存浪费

unity单例模式_简单的单例模式代码_单例模式编程

缺点:在不加锁的情况下,不能在多线程下运行

饿汉单例:

unity单例模式_单例模式编程_简单的单例模式代码

public class DanLi : MonoBehaviour {
    //饿汉单例
    private static DanLi instance = new DanLi();//创建私有静态类对象
    private DanLi() { }//私有构造函数
    public static DanLi Instance()//公共静态返回值是自身类的方法
    {
        return instance;
    }
}

优点:因为一开始就实例化对象,所以无须考虑多个线程同时访问的问题,可以确保实例的唯一性;从调用速度和反应时间角度来讲unity单例模式,由于单例对象一开始就得以创建,因此要优于懒汉式单例。

缺点:由于饿汉模式下回优先实例化对象像素游戏素材,只要系统运行时加载了该类,相比于懒汉单例就会多占用一些资源。

Unity中的单例模式:

public class DanLi : MonoBehaviour {
    public static DanLi instance;
    void Awake()
    {
        instance = this;
    }
}

文章来源:https://blog.csdn.net/qq_59823973/article/details/122991240