在我的项目中有5个类定义项目的配置参数。 在这5个类中的每一个中,参数都是相似的很大部分 - 只有名称略有不同。即在class1中我有paramA_1,在class2 paramA_2中...在class5 paramA_5中。
我无法重新设计这5个类,这对我来说是一些输入。
这个班的每个人都有一个儿子。我想为儿子创建一个基类,例如定义与几乎相似的配置参数(如上面的paramA_x)相关的行为。
代码示例:
// cannot edit these 2 classes
class configRegs_1 {
protected:
int paramA_1;
};
class configRegs_2 {
protected:
int paramA_2;
};
class class_1 : public configRegs_1 {
void function();
};
class class_2 : public configRegs_2 {
void function();
};
void class_1::function() {
// do something with paramA_1
}
void class_2::function() {
// do the same as class_1::function but using with paramA_2
}
这样做的最佳方法是什么?我在考虑一个中间类,它统一了共享参数:怎么做?
我想要一些
class configRegs_generic {
protected:
int paramA;
};
class class_generic : public configRegs_generic {
void function();
};
void class_generic::function() {
// do something with paramA
}
class class_1 : public class_generic, public configRegs_1 {
...
};
class class_2 : public class_generic, public configRegs_2 {
...
};
提前多多感谢
答案 0 :(得分:0)
我可能会创建一个设置包装类,它在类类型的容器(list / array / hash / map)中使用上面的类,并使用settings类(带有相应的getter和setter)。这样您就可以访问每个类参数:
configRegs_wrapper [x] - > paramA
如果这样的解决方案适合您,我可以用工作代码示例进行说明。