1. 意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2. 适用性
在下面的情况下可以使用Singleton模式
• 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
• 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
3. 结构
4. 参与者
• Singleton
— 定义一个 Instance操作,允许客户访问它的唯一实例。
— 可能负责创建它自己的唯一实例。
5. 协作
• 客户只能通过Singleton的Instance操作访问一个Singleton的实例。
6.代码结构
7.代码实现
Singleton.cs
using UnityEngine;
using System.Collections;
public class Singleton {
private static Singleton instance;
public static Singleton GetInstance() {
if (instance == null)
instance = new Singleton();
return instance;
}
public string Name { set; get;}
}
SingletonClient.cs
using UnityEngine;
using System.Collections;
public class SingletonClient : MonoBehaviour {
// Use this for initialization
private Singleton singleton;
void Start () {
singleton = Singleton.GetInstance();
singleton.Name = "张三";
}
}