У меня есть модуль C, созданный в мастерской в реальном времени на основе модели Simulink.
Эти модули предоставляют три общедоступные функции:
int init();
int calc(double *inputarray, double *outputarray);
int term();
На основе содержимого массива output я могу смоделировать класс с именем OutputThing.
Я хочу интегрировать эти функции в класс-оболочку под названием WrapperModule.
Прямо сейчас у меня есть класс, который выглядит так:
class WrapperModule {
public:
int initialize();
OutputThing calc(...);
int terminate();
};
Моя проблема в том, как правильно спроектировать метод-обертку для функции calc (). Я хочу избежать
создать метод с массивом / вектором в качестве единственного аргумента. Но определить правильные аргументы
из вектора сложно, и мне не нравится идея иметь метод с 6 или более аргументами.
Бертран Мейер в своей книге OOSC предлагает использовать методы сеттера. Что-то вроде:
class WrapperModule {
public:
int initialize();
void set_foo(double f);
void set_bar(double b);
OutputThing calc();
int terminate();
};
Есть идеи? Я не уверен, какой подход будет лучше.