2014-04-19 45 views
0

在我的項目中,我使用了5個不同的描述金融資產的子類:債券,基金,期貨,期權和股票。其中每個都有很多共同點,所以我創建了類「BaseAsset」並讓所有資產類從該類繼承。如何將類似的屬性移動到基類

所有的小類都有特定交易列表(BondTrades,FundTrades等)。

public class Bond : BaseAsset 
{ 
    // Bond-specific properties 
    public double FaceValue { get; set; } 
    public virtual List<BondTrade> Trades { get; set; } 

子類也有,他們都實施,一些屬性僅是略有不同,e.g:

返回移動平均價格的屬性。該移動平均價格是基於類的特定行業計算的,所以它看起來像這樣的債券類:

public double movingAveragePrice 
{ 
    get 
     { 
      foreach(BondTrade trade in this.Trades) 
      { 
       nominator += (trade.Price.Value * trade.Quantity)/trade.ExchangeRate; 
       denominator += trade.Quantity; 
      } 
      return nominator/denominator; 
     } 
} 

而對於股票類,這將是幾乎相同,只是它會遍歷股票交易。備註:我還使用所有特定的BondTrade,StockTrade等繼承的BaseTrade類。

我該如何將這樣的屬性移動到BaseAsset?我錯過了什麼概念?謝謝你的提示或評論!

回答

1

一種選擇可能是的BaseTrade列表添加到BaseAsset類,然後只要你BaseTradePriceQuantityExchangeRate你應該能夠移動平均計算移動到BaseAsset類。

+0

想通了,我不需要具體的貿易類,所以只剩下「BaseTrade」,然後我可以按照你的建議去做。謝謝! – peter