本文共 1595 字,大约阅读时间需要 5 分钟。
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。01:不继承MonoBehaviour的类实现单利
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。 这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。class singleTemp{ //私有化类实例 private static singleTemp _instance=new singleTemp(); //让构造函数为 private,这样该类就不会被其他类实例化 private singleTemp() { } //提供外界唯一可以访问类实例的方法 public static singleTemp instance { get { return _instance; } } public void show() { Console.WriteLine("single show"); }}
02:实泛型单利模板类
public class singleTemplatewhere T : new() //where T : new() 为泛型约束,确保T类型是可以被new的 {private static T _instance; //私有的T类型的静态变量public static T GetInstance() //获取实例的函数{ if (_instance == null) //判断实例是否已存在 { _instance = new T(); //不存在则创建新的实例 } return _instance; //返回实例} class test:singleTemplate { public void show() { Console.WriteLine("testshow"); }}
02:继承MonoBehaviour的类实现单利
public class single : MonoBehaviour{private static single _instance; public static single instance { get { if (_instance==null) { _instance = GameObject.FindObjectOfType(); } return _instance; }} }
04:继承MonoBehaviour的类实现单利模板
public class singleTemplate: MonoBehaviour where T : MonoBehaviour { private static T _instance; public static T instance{ get { if (_instance==null) { _instance = GameObject.FindObjectOfType () as T; } return _instance; }}
转载地址:http://udrxo.baihongyu.com/