2013-03-06 148 views
0

我正在寫一個類來表示要在投資組合選擇器中使用的證券池。根據客觀度量和約束,類對象將緩存一些相關數據以進行性能優化。C++類結構

這可以通過定義包含公共元素及其子類的基類來完成,每個基類都針對特定的客觀度量/約束進行了優化。

但是,我希望能夠緩存多個指標的數據。有沒有一個標準/簡潔的方法來做到這一點?

編輯:

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 
} 

此類結構使得有可能具有用於特定度量(百分位數,平均)優化的對象

我想建立是被用於多個指標優化的對象,無需爲所有排列編寫代碼

+5

很難用單詞來傳達軟件架構。我不知道其他人,但「用於投資組合選擇者的證券池」對我來說沒有多大意義。你可以提供一些代碼或圖表來使它更清晰嗎? – 2013-03-06 12:36:10

+1

@sftrabbit:你並不孤單 – 2013-03-06 12:40:50

+0

對不起,模糊的問題。我已經添加了一些解釋。 – user2139915 2013-03-06 12:43:38

回答

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; 

但是,如果沒有關於具體問題的更多信息,您很難提供有效的建議。因此,將上述作爲一個想法,但請注意,根據您的使用情況,還有其他多種選擇。