我有一个静态帮助器类,它有几个使用相同参数的函数:
class helper {
public:
static double getValue(const CString &a, const CString &b, const CString &c, ... );
private:
static double foo(const CString &a, const CString &b, const CString &c, ... );
static bool bar(const CString &a, const CString &b, const CString &c, ... );
static bool qux(const CString &a, const CString &b, const CString &c, ... );
static double wad(const CString &a, const CString &b, const CString &c, ... );
static int xyz(const CString &a, const CString &b, const CString &c, ... );
};
像这样使用它:
double value = helper::getValue(a, b, c, k, ...);
getValue()
将调用 foo()
,后者将调用 bar()
、qux()
和wad()
等
他们都需要相同的a、b、c数据集。
可以看到,有很多重复的参数,看起来有点乱。
有什么办法可以重构它吗?
最佳答案
是的,创建一个包含所有参数作为成员的类/结构Params
。让您的静态函数接受 Params
的实例而不是所有参数。您的代码将如下所示:
struct Params {
const CString &a;
const CString &b;
const CString &c;
...
}
class helper {
public:
static double getValue(const Params & p);
private:
static double foo(const Params & p);
static bool bar(const Params & p);
static bool qux(const Params & p);
static double wad(const Params & p);
static int xyz(const Params & p);
};
这样您只需创建一次 Params
对象并将其传递。
关于c++ - 重构具有相同参数的静态成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30064986/