您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d—X游戏开发之单例设计模式

2013-08-09 14:30 351 查看
Cocos2d—X游戏开发中需要大量使用到单例,单例是在整个程序运行期间都实例化一次,并且其作用域是全局的的对象。相当与C++中的全局静态变量。如果在程序运行期间需要大量使用到某个数据,那么单例无疑是最好的选择,

C++中,若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用。静态方法只能用类的静态成员

现在来看下,我们经常使用到的单例,CCDirector::sharedDirector

//在.cpp文件里面定义并初始化静态对象为null
static CCDisplayLinkDirector *s_SharedDirector =
NULL;

CCDirector* CCDirector::sharedDirector(void)
{
//如果单例为null,那么就创建一个对象并初始化
if (!s_SharedDirector)
{
s_SharedDirector =
new CCDisplayLinkDirector();
s_SharedDirector->init();
}

return
s_SharedDirector;
}

这样,就可以在程序的的整个生命周期之中,始终存在并且只有一个CCDirector的实例,又叫对象。从内存上面分析,大量使用某个类,不用创建多个对象;从生命周期上面分析,在程序运行期间,都可以使用。这就是单例的优势所在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: