我正在编写一些生成/导入一些数据的科学代码(让我们称之为X)来生成其他数据集(我们可以称之为Y)。问题是产生X的方法不止一种,这种生成方法会影响Y的计算公式。
我开发了一个处理数据导入和计算的库,但是,我无法在没有用户干预的情况下决定修改公式的合理机制。
处理此类案件的最佳方法是什么?我为X的不同生成方法实现了不同的函数,但是Y的计算方法是单一的。
为了澄清更多,我想实现以下行为:
这个问题中提到的所有功能都是具体,简单和愚蠢的课堂功能。
我不确定如何在生成/导入X的函数中实现触发器机制并使魔法工作。存储配方的方法由有用的伙伴@UnknownGosu和@Dima-Rudnik回答。
提前致谢。
答案 0 :(得分:1)
您需要strategy pattern的表单。
就像@UnknownGosu指出的那样。定义一个抽象的Formula
接口,如下所示:
class Formula
{
public:
virtual double calc(double) = 0;
};
创建一个具体的Formula
class QuardicFormula : public Formula
{
public:
double calc (double x) {return x*x;}
};
修改强>
在过程编程中,使用函数指针完成相同的操作。 例如,QuickSort的一个实现,它接受一个指向排序函数的指针。