这是资源管理中的一个小的分支部分,主要管理指针。
关于单例模式,有许多种实现方法,有兴趣的可以参考 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(类型,参数名称)
第六 释放内存。通过管理器来释放内存,销毁实例。
关于单例模式,有许多种实现方法,有兴趣的可以参考 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");
下载地址: