单例模式的指针管理工具:参数管理器-资源管理核心

来源:互联网 发布:金螳螂家装 知乎 编辑:程序博客网 时间:2024/05/16 06:29
这是资源管理中的一个小的分支部分,主要管理指针。
关于单例模式,有许多种实现方法,有兴趣的可以参考 http://blog.csdn.net/hackbuteer1/article/details/7460019
本题主要是说一下参数管理器。就是一个实例指针的管理工具,我就叫它参数管理器了。
昨天在群里有人说单例的事情,还有怎么样获取一些已有的实例资源。我们的团队以前就做过一个类似的东东,所以就想给大家分享一下。


首先,所有的实例资源(比如窗口、控件等)要求new出来以后统一管理,可以在各处申请,放到管理器中以后就不能随意释放,而是要由管理器来释放才行。
这种内存管理的方式,特别适合某处创建一个对象以后,还有很多场景需要调用的情况,而且可以将其生命周期有效的控制起来。


第二,在使用之前,应当先注册一下参数管理器,为了方便我写了一个宏,用来注册各种工具,本例中只有参数管理器一个。
      为了使用起来更显得优雅,我将宏的参数设计成了类名,实际上使用参数管理器的朋友们并不用考虑这么多,只需要拷贝这一句即可
      REGIST_OBJECT(SgfParamManager);  //将参数管理器注册到核心中


第三,通过一个宏可以获取到参数管理器。 同样的,我将宏的参数设计成了类名,实际上使用参数管理器的朋友们并不用考虑这么多,只需要拷贝这一句即可。
      SgfParamManager* tParam = GET_COREOBJECT(SgfParamManager);//获取参数管理器


第四  向参数管理器中添加参数:new一个自己的实例以后,就可以通过一个宏放入参数管理器。以后就可以通过这个名字获取这个实例。
      Dialog* tDlg = new Dialog;
      tParam->addParam("dlg", tDlg);   //向参数管理器中添加参数  addParam(参数名称, 参数指针)


第五  通过参数管理器获取实例, 这个宏的意思也是比较简单明了的
      Dialog* tDlg2 = SYS_PARAM_GET_PARAMETER(Dialog, "dlg");     //从参数管理器中获取参数 SYS_PARAM_GET_PARAMETER(类型,参数名称)


第六  释放内存。通过管理器来释放内存,销毁实例。

      tParam->->deleteParam("dlg");


下载地址:

http://download.csdn.net/detail/sdust_dx/9706540

0 0