c ++类结构

时间:2013-03-06 12:33:26

标签: c++ design-patterns

我正在编写一个类来表示要在投资组合选择器中使用的证券池。根据客观度量和约束,类对象将缓存一些相关数据以进行性能优化。

这可以通过定义一个包含公共元素及其子类的基类来完成,每个元素都针对特定的客观度量/约束进行了优化。

但是,我希望能够为多个指标缓存数据。有没有标准/整洁的方法来做到这一点?

编辑:

class Pool {
    // Contains data for different financial securities
}

class PercentileLossPool : public Pool {
    // Contains data which makes calculating percentiles easy
}

class AvgProfitPool : public Pool {
    // Contains data which makes calculating averages easy
}

此类结构可以为特定指标(百分位数,平均值)优化对象

我想要构建的是一个针对多个指标进行优化的对象,而无需为所有排列编写代码

1 个答案:

答案 0 :(得分:1)

您可以考虑通过继承向您的类添加数据来反转关系:

class PoolBase {
     // Contains data for different financial securities
};

class PercentileLossData {
    // Contains data which makes calculating percentiles easy
};

class AvgProfitData {
     // Contains data which makes calculating averages easy
};

template< typename... Ts >
class Pool : public PoolBase, Ts...
{
};

typedef Pool< PercentileLossData, AvgProfitData > MyPool1;

但如果没有关于具体问题的进一步信息,你很难提出有效的建议。因此,请将上述内容作为一个想法,但请注意,根据您的使用情况,还有其他多种选择。