cocos2dx设计模式之单例模式

在百度百科中对单例模式的介绍是这个样的:

单例模式 是一种常用的软件设计模式,在它的核心结构中只包含了一个被称为单例模式的特殊的类的,通过单例模式可以保证系统中一个类只有一个实例而且这个实例易于被外界访问到,从而方便对实例的个数的控制并节约资源,如果希望在系统中某个类的对象只存在一个,单例模式是最好的解决方案。

 

不得不说百度给的解答还是很好的。那么关于cocos2dx中呢?我们为什么要用到单例模式,我们又要怎么去使用它呢?接下来听我一一解答

那么为什么要使用到单例模式呢??

首先我们知道在游戏中只会创建出一个主角对吧?当然不会排除你可以做一个人操控两个主角的游戏,那么当你写了一个主角的类之后呢?需要对他进行实例化,那么在哪里进行实例化呢?我一般都会选择在主场景中进行实例化并且再addchild()进场景中。

但是这样只有在主场景中的方法才能对这个主角进行一些控制,比如说放大缩小得到主角的位置信息什么。那么试想一下如果我们需要对主角进行一些控制,并且你把控制独立写在一个类中了,并没有写在主场景中,我并不清楚大家是怎么写的,但是一般情况下我不会把很多信心写在主场景中的,只是在主场景中添加一下各个游戏的元素而已。控制什么的都会分开写,比如说写一个独立的touchControl类这样用touchControl类去直接控制主角,这样不会显的很乱。

那么如果要在control类中获得主角类的实例那就必须要从主场景传入过去这个主角实例。相对应的创建其他类的时候也是需要把主角已经实例好的传入到其他的类中。这样的传入会显的很臃肿,如果你需要控制很多东西的话,那么你就必须要进行很多的实例化的传入,这样写起来会比较麻烦的。

所以这个时候就用到实例模式了,在主角类的编写中在其构造函数中进行实例化的传入,就相当于把一个实例创建好了,交由一个上帝来保管,任何人想要去得到就直接去上帝那里去拿就可以了,并不需要再去找在那里实例化的,并且把不想干的类的头文件互相包含起来,这样子做会乱,试想一下类于类之间互相牵连,这样就违背了那句高内聚低耦合的面向对象编程的主要思想了。

因为你使用了单例模式,会使得你的代码高度紧凑,所有的实例化信息你都可以从上帝那里拿到,不需要再去在很多类之间互相包含获取。

这样就做到了低耦合了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值