如何将类似属性移动到基类
本文关键字:移动 基类 属性 | 更新日期: 2023-09-27 17:59:10
在我的项目中,我使用了5个不同的子类来描述金融资产:债券、基金、未来、期权和股票。每一个都有很多共同点,所以我创建了类"BaseAsset",并让所有资产类从该类继承。
所有子类都有一个特定交易的列表(债券交易、基金交易等)
public class Bond : BaseAsset
{
// Bond-specific properties
public double FaceValue { get; set; }
public virtual List<BondTrade> Trades { get; set; }
子类还有一些它们都实现的属性,这些属性只是略有不同,例如:
返回移动平均价格的房产。这个移动平均价格是根据该类别的具体交易计算的,因此债券类别的情况如下:
public double movingAveragePrice
{
get
{
foreach(BondTrade trade in this.Trades)
{
nominator += (trade.Price.Value * trade.Quantity) / trade.ExchangeRate;
denominator += trade.Quantity;
}
return nominator / denominator;
}
}
对于Stock类,它几乎是一样的,只是它会在StockTrades上迭代。备注:我还使用了一个BaseTrade类,所有特定的BondTrade、StockTrade等都继承自该类。
如何将这样的属性移动到BaseAsset我缺少什么概念?感谢您的任何提示或意见!
一个选项可能是将BaseTrade
的列表添加到BaseAsset
类,然后只要您的BaseTrade
具有Price
、Quantity
和ExchangeRate
,就应该能够将移动平均计算移动到BaseAsset
类。