首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++结合对象管理

2013-09-18 
c++组合对象管理有一些业务逻辑,需要管理多个同样类型的对象,并对外提供查询,删除等接口,在这些场合中,可

c++组合对象管理

有一些业务逻辑,需要管理多个同样类型的对象,并对外提供查询,删除等接口,在这些场合中,可以将被管理的对象称为Entity,管理Entity的类自然就叫做Entity_Manager,当以这样的方式组织层级对象时,很直观,而且项目的风格统一,每个人一旦熟悉了这种方式,理解别人写的Entity_Manager就很轻松。根据以往的项目经验,我自己实现了Entity和Entity_Manager类,代码如下:

class Task_Manager : public Entity_Manager<Task, KEY_UINT32>{public:    Task* get_task(uint32 task_id) const{    return get_entity(task_id);}bool add_task(const Task *task){    return add_entity(task);}void delete_task(const Task *task){     delete_entity(task);}void print_all_task_name(){    struct CB : Entity_Exec<Task>{    bool exec(Task *task){    print(task->name());}}CB cb;exec_all(cb);}};

只要继承Entity_Manager类后,Task_Manager类就具备了管理多个Task类的能力,支持对task的查询,删除,遍历等操作,而且在Entity_Manager的基类中实现了一种保护机制,就是在迭代的时候,不会出现导致迭代器失效的操作,因此在业务功能开发中,可以大胆地使用Entity_Manger管理类。如果项目中都以同样的方式来管理层级对象,那么项目的风格很统一,项目里每个开发人员也能够最快的理解别人写的管理器,于项目也是大有好处。所以欢迎在你的项目中也使用Entity_Manager类!!!

热点排行