【发布时间】:2023-03-27 07:00:01
【问题描述】:
我正在努力寻找最好的地方来保持我的域更改。我有以下实体:
public class Period
{
public Guid PeriodId { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
Trade
{
public Guid TradeId { get; set; }
Trader Instigator { get; set; }
Trader Acceptor { get; set; }
Period period { get; set; }
public long Volume { get; set; }
public decimal Price { get; set; }
}
现在为了创建新交易,我已将其卸载到域服务
tradeService.PlaceTrade(Guid periodId, Guid UserId, decimal price. long volume)
地方交易功能似乎很适合上述域服务,交易服务坚持交易。我传入了一个 ITradeRepository 类以方便使用。
为了接受交易,我想要以下内容,以便交易的域逻辑位于交易实体内。
Trade trade = tradeRepository.Get(Guid tradeId)
TradeStatus = trade.Accept(userId);
上述问题在于 Trade 实体负责保存数据,因此依赖于 ITradeRepository。
这是正确的做法吗?感觉很脏?或者更好的方法是为交易类创建一个扩展方法以促进接受交易的相同功能?
有什么想法吗? 谢谢
【问题讨论】: