工厂模板-游戏开发
来源:互联网 发布:淘宝安全证书 编辑:程序博客网 时间:2024/06/06 13:16
这是第二次来写博客,本着严谨的态度,这次的主题是工厂模式。工厂模式负责着大型项目成千上百的对象的统一实例化,这样的好处,统一管理,清晰明了。当你的需求发生改变的时候仅仅需要修改负责生产的工厂,而不需要修改客户对工厂的调用代码。由于网上的工厂模式很多,所以今天要写的是一个可以通用的工厂模板,如下:
#ifndef _FACTORY_H#define _FACTORY_H#include <map>// define the constructor method, change as your requesttemplate<typename TBaseClass, typename TClass> TBaseClass* createClassType(){return new TClass;}// define factorytemplate<typename TKey, typename TBaseClass> class Factory{private:typedef TBaseClass* ( *Constructor )();typedef std::map< TKey, Constructor >ContructorMap;public://---------------------registe class to factory--------------------template<typename TClass> void registerClass( TKey identifier ){Constructor tContructor= &createClassType< TBaseClass, TClass >;mRegistedClassConstructorList.insert( std::make_pair( identifier , tConstructor ) );}//-------------------create instance according identifier-----------TBaseClass*createInstance( TKey identifier ){Constructor tConstructor= mRegistedClassConstructorList[identifier];if ( tConstructor != NULL ){return tConstructor();}return NULL;}//------------------------------------------------------------------private:ContructorMapmRegistedClassConstructorList;}#endif //_FACTORY_H
将以后需要生产的零件类型(TClass)事先注册到工厂的厂房(map)里,就可以随时生产出需要的零件实例, 确保你生产的各种零件是TBaseClass的派生类就可以了
0 0
- 工厂模板-游戏开发
- 单例模板-游戏开发
- 【AndEngine游戏开发】第一章:4.创建对象工厂
- cocos2d游戏开发第一课 - 创建IOS模板工程
- 工厂模板方法
- 9、Cocos2dx 3.0游戏开发找小三之工厂方法模式与对象传值
- Cocos2d-x游戏引擎开发[2]----工厂方法,统一接口 (以helloworld类为基础)
- 设计模式-工厂方法 简单工厂 抽象工厂 模板方法
- 工厂模式的模板实现
- c++ 模板之 抽象工厂
- 手机游戏策划模板
- 初级游戏工程模板
- JS+HTML5 游戏模板
- 游戏手柄模板
- 添加cocos2dX场景类模板。可以更快捷的开发游戏。。。
- unity3d 游戏人工智能开发之状态机(C#模板与示例)
- 游戏开发
- 游戏开发
- hdoj 2187 悼念512汶川大地震遇难同胞——老人是真饿了 水过~
- HNU 12894 Keys
- Cocos2d-x入门教程(详细的实例和讲解)
- 《学习bash》笔记--调试shell程序
- 安装crossover12.0
- 工厂模板-游戏开发
- Linux命令:df
- 关于 AnnotationConfigBeanDefinitionParser are only available on JDK 1.5 and higher
- 针对TQ2440开发板上linux2.6.30.4内核的交叉编译和驱动程序的移植
- Ubuntu下开启SSH服务
- 使用Handler在子线程中更新UI
- 关于知乎话题“程序员有哪些借口可以让自己写出低质量的代码?”的一点想法
- 字符串比较
- UVA 11235 经典RMQ问题