使用策略模式+简单工厂+类自动注册,实现在添加新策略时,无需修改其它文件代码,只需要在新的策略类中添加注册宏即可
REGISTER_DATAMANAGE_CLASS_TO_CONTENT(class_name)
序号 | 文件名 | 描述 |
---|---|---|
1 | CDataManageContext | 环境角色类,管理策略具体调用 |
2 | IDataManage | 抽象策略角色, |
3 | CTelemeteringCycleDataManage | 具体策略角色 |
4 | MacroDataManageRegister | 宏函数文件,类自动注册宏函数 |
5 | CDataObjectManage | 全局函数,全局注册函数 |
6 | CMapContent | 策略角色管理类,单例 |
环境角色Context
CDataManageContext.h
class CDataManageContext
{
private:
IDataManage* m_data_manage{ nullptr };
public:
CDataManageContext();
CDataManageContext(const quint16& ikey);
void refreshData();
void refreshChart