通常情况下,在没有泛型单例这个概念之前,我们如果需要使一个形成一个单例,通常情况下就会有以下代码:
public class SceneStateManager{
private static SceneStateManager _Instance; //私有化构造器
public static SceneStateManager GetInstance() //能被类调用并且返回类类型的方法GetInstance()
{
if(_Instance == null)
{
_Instance = new SceneStateManager( );
}
return _Instance;
}
}
然后我们在另外的类中通过SceneStateManager.GetInstance()就得到了SceneStateManager这样一个类中唯一的对象—对象_Instance。如果是这样,在开发过程中,每次你想生成单例,都需要重复以上代码过程,这样很麻烦。我们引入泛型的概念,写一个抽象类的脚本。当其他的类只要继承这个类,就可以自动形成一个单例。
既然这样,我们反过来彻底研究一下泛型以及泛型的具体应用
我们都知道在ArrayList这样的集合中,是对类型Object进行操作的,也就是说任何数据类型被添加到ArrayList中都会变成Object类型,这就是我们之所以能再ArrayList进行任何数据类型添加的原因。如下图:
但是,当我们进行运用的时候会遇到一些问题,如有以下情况: