to myself 的分类学习日志

做自己想做的事
posts - 232, comments - 6, trackbacks - 0, articles - 0

RPG, Role Play Games

Posted on 2009-03-06 13:32 kongkongzi 阅读(280) 评论(0)  编辑 收藏 引用 所属分类: game development
RPG, Role Play Games, 角色扮演游戏。

简单的属性结构设计:
 这么做的缺点大致有这么几点:
1. 属性没有明确分门别类,尤其在多人协作、多模块编写时,往往上面一批、下面一批,甚至有重复属性、废弃属性,难于管理和把握;
2. 对于数据库存取,需要写单独的存取接口,而且一旦属性有增减、修改,存取接口要随之修改;
3. 通过接口函数进行简单的属性存取面临大量的堆栈保存,即使使用内联或宏定义,也是治标不治本。
        针对上述问题,我的思路也比较简单:对基本类型数据进行二次封装。
       之所以提到基本类型数据,主要缘于基本类型构成的结构可以通过sizeof运算符直接确定,而像类对象等组合类型,其深拷贝、赋值、操作及赋值等逻辑则较为复杂,一般无法统一处理。

       其实一个类的成员函数中出现Get...Set的接口说明程序结构没有设计好。一个类除了封装数据之外就是封装行为,而Get,Set这2个是不属于对象行为的。
       我原来也是写的有Get,Set,后来我发现这是从C语言带过来的毛病,要从另外的角度进行封装。比如楼主的游戏,不要单独为了某个东西的属性而1个类,要把角色,场景的行为放到类接口中,而Get,Set的操作隐藏到类里面。!!!!!!!!