【发布时间】:2009-05-18 10:42:43
【问题描述】:
我有一个由 Real-time Workshop 基于 Simulink 模型创建的 C 模块。 该模块提供三个公共功能:
int init();
int calc(double *inputarray, double *outputarray);
int term();
基于 outputarray 的内容,我可以为一个名为 OutputThing 的类建模。
我想将这些函数集成到一个名为 WrapperModule 的包装器类中。 现在我有一个看起来像这样的类:
class WrapperModule {
public:
int initialize();
OutputThing calc(...);
int terminate();
};
我的问题是,如何正确设计 calc() 函数的包装方法。我想避免 创建一个以数组/向量作为其单个参数的方法。但是确定正确的论点 从向量中提取是棘手的,我不喜欢使用具有 6 个或更多参数的方法的想法。
Bertrand Meyer 在他的 OOSC 书中建议使用 setter 方法。比如:
class WrapperModule {
public:
int initialize();
void set_foo(double f);
void set_bar(double b);
OutputThing calc();
int terminate();
};
有什么想法吗?我不确定哪种方法会更好。
【问题讨论】:
-
在我的回答中,我假设 init() 是一次性初始化函数, term() 是一次性终止函数,并且 calc() 可以在初始化()和术语()。这是正确的吗?