目录
使用目的
游戏中有很多公共模块,比如Asset管理模块,UI模块,音频模块等等。
这些公共模块会频繁的被各个业务功能或者其他公共模块调用,为了方便访问通常会考虑使用单例模式来处理这些公共模块。
如果在每个模块都去实现单例未免太麻烦了,所以一般考虑做一个单例的基类供公共模块来继承。
而这个单例基类亦可以算做游戏框架中最基础的内容了。
思路和实现
简易单例
单例的核心思路就是在类里面保存一个静态的对象,当首次访问该对象的时候就实例化并赋值,再次访问的时候就直接返回已经实例化的对象。保证多次访问,仅一次实例化。比如这样:
public class MyClass
{
private static MyClass _instance = null;
public static MyClass instance
{
get
{
if(_instance == null)
{
_instance = new MyClass();
}
return _instance;
}
}
}
外部就可以通过调用MyClass.instance来获取Myclass类的实例从而快速的访问该类的方法。