一 单例模式设计模式
Cocos2dx中的单例有:CCDirector,CCTextureCache,CCSpriteFrameCache,CCScriptEngineManager等等,那为何存在这些单例呢?数组
如导演类负责控制场景对象等等,由此存在一个场景控制对象便可;相似那种操做缓存数据文件之类的,或者配置文件的类等,在程序运行过程也是只需一个即可。缓存
二 观察者模式函数
指被观察者含有一个数组,里边存放了全部观察者的引用,在被观察者的状态发生改变的时候,经过调用观察者的函数来通知观察者,实现了信息的传递。性能
三 简单工厂模式字体
CCSpriteFrameCache类经过定制的plist文件来实例化一系列相关的CCSpriteFrame实例,而后只须要提供精灵帧的名字就能够获得相应的CCSpriteFrame实例了。从这个意义上来讲,CCSpriteFrameCache类也能够说是一个工厂类,专门负责生产CCSpriteFrame实例。同时,若是精灵帧名字相同的话,那么获取的精灵帧实例也是相同的。spa
四 管理者模式设计
管理者(Manager)专门负责管理其它类的实例的类,如CCTextureCache。对象
管理者类(cache类)能够简化一些能够重用的资源(好比字体、纹理、精灵帧等)的建立和管理工做,能够提升游戏性能。游戏
但凡那些对象,在运行时建立的时间开销特别大时,而又要常常重复使用时,均可以采起此模式来提升运行时性能。
MVC — 按照个人理解就拿组队系统界面为例,CPortTeamUI就是Model,定义了业务逻辑相关的行为方法,如initUI,UpdateView等;load加载的面板Panel即是View,由一组UI元素组成; ClsTeamData是Controller,负责逻辑数据管理中心。 打开界面时View要显示最新数据,则请求Controller问服务端要,当数据返回时Controller会寻找对应的Model,调用其定义的方法updateView从而执行更新行为,实际上Model会通知相关的View去实时更新。 Controller做为Model和View二者之间的联系桥梁。