Posted on 2009-03-06 13:32
kongkongzi 阅读(289)
评论(0) 编辑 收藏 引用 所属分类:
game development
RPG, Role Play Games, 角色扮演游戏。
简单的属性结构设计:
这么做的缺点大致有这么几点:
1. 属性没有明确分门别类,尤其在多人协作、多模块编写时,往往上面一批、下面一批,甚至有重复属性、废弃属性,难于管理和把握;
2. 对于数据库存取,需要写单独的存取接口,而且一旦属性有增减、修改,存取接口要随之修改;
3. 通过接口函数进行简单的属性存取面临大量的堆栈保存,即使使用内联或宏定义,也是治标不治本。
针对上述问题,我的思路也比较简单:对基本类型数据进行二次封装。
之所以提到基本类型数据,主要缘于基本类型构成的结构可以通过sizeof运算符直接确定,而像类对象等组合类型,其深拷贝、赋值、操作及赋值等逻辑则较为复杂,一般无法统一处理。
其实一个类的成员函数中出现Get...Set的接口说明程序结构没有设计好。一个类除了封装数据之外就是封装行为,而Get,Set这2个是不属于对象行为的。
我原来也是写的有Get,Set,后来我发现这是从C语言带过来的毛病,要从另外的角度进行封装。比如楼主的游戏,不要单独为了某个东西的属性而1个类,要把角色,场景的行为放到类接口中,而Get,Set的操作隐藏到类里面。!!!!!!!!