我正在实现一个涉及大量操作和参数的命令模式实现。为了简化,我计划使用可以将所有可能的参数保存到地图中的模块的类。
class ParamBag {
public:
add(int paramId, shared_ptr<IParam> param);
bool contains(int paramId);
std::shared_ptr<IParam> get(paramId);
private:
int mask;
std::map<int, std::shared_ptr<IParam>> params;
};
这种实现的一个明显缺点是每个参数都必须从 IParam 接口扩展,我可以以某种方式简化它。