设计模式- c++类结构

design patterns - c++ class structure

本文关键字:结构 c++ 设计模式      更新时间:2023-10-16

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

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

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

编辑:

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
}

这个类结构使得对象可以针对特定的指标(百分位数,平均值)进行优化

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

您可以考虑通过继承向您的类添加数据来颠倒这种关系:

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;

但是,如果没有关于具体问题的进一步信息,就很难给出有效的建议。因此,把上面的想法作为一个想法,但要注意,根据您的用例,还有多种其他选择。