Unity设计模式——单例模式

1.单例模式介绍

单例模式是最简单的设计模式之一。属于设计模式的创建型模式。
他的官方定义是:确保一个类只有一个实例,并提供一个全局访问点。
注意:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例

 

2.几种单例模式


1.最简单的单例模式——继承MonoBehaviour


在别的类中用GameManager._instance.Print()去调用方法
这是最简单的一种单例模式,但是如果别的脚本的Awake比此脚本Awake先执行则会报空引用的错误。需要在Script Execution Order中设置脚本的执行顺序去解决。
 

2.更规范一点的写法——继承MonoBehaviour

在别的类中用GameManager.Instance.Print()去调用方法

3.普通类的单例——不继承MonoBehaviour

 如果类没有继承MonoBehaviour则不能挂在到游戏物体上也就是不能执行Awake方法。

在别的类中用GameManager.Instance.Print()去调用方法

4.单例类模板——继承MonoBehaviour

如果需要大量的类实现单例模式则推荐以下方式
先创建一个单例模板类,之后在需要实现单例的类中继承此类即可。

5.单例类模板——不继承MonoBehaviour

如果需要大量的类实现单例模式则推荐以下方式
先创建一个单例模板类,之后在需要实现单例的类中继承此类即可。

猜你喜欢

转载自blog.csdn.net/LLLLL__/article/details/88178751