C++实现根据类名动态生成类对象

在开发后台服务的过程中,我们常常需要从数据库中取数据,并将数据缓存在本地中,另外,我们的服务还需要有更新数据的能力:包括定时的主动更新以及数据库数据更新时服务收到通知的被动更新。

之前在需要用到以上功能的时候,模仿着组内通用的数据Cache部分的代码来写,十分方便,基本上只需要自己写两个类:一个是取数据并缓存数据的类XXXData,一个是扇出数据的类XXXFetcher。

在需要使用数据的时候,通过:

FetcherFactory::getFetcher<XXXFetcher>()

即可获取一个XXXFetcher对象的指针。

查看FetcherFactory.h的备注:

/**
 * 配置中心, 存储各种配置, 会自动搜索项目中的Fetcher实现类, 加载, 并 
 * 在收到刷新配置的通知时调用update方法
 * 需要在服务器启动的onInitialize中调用本类的Initialize方法进行初始化
 */

重点:会自动搜索项目中的Fetcher实现类并加载。

也就是说,FetcherFactory可以自动地查找项目中的Fetcher实现类,然后动态地创建XXXFethcer对象。

什么叫动态创建呢?

就是能够根据一个类的名字动态地创建该类的对象。

举个例子,你的程序需要用到一个文本文件,而此文件中存放着一些类的名字,你能根据这些名字动态的生成这些类吗?

/*****************************************************************************/
/*从文件中读出类的名字存放在字符串变量szClassName中,现在假设读出的字符串为 */
/* ”CString”,而类CString派生自CObject,那么我们可以用基类指针指向派生类 */
/***********************************/********************
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值