【发布时间】:2015-02-21 02:26:33
【问题描述】:
在洋葱架构和领域驱动设计中,以下良好的设计和允许的设计是什么?
假设你有一个像这样的“订单”域类
class Order
{
INotificationService _notificationService;
ICartRepository _cartRepository;
void Checkout(Cart cart, bool notifyCustomer)
{
_cartRepository.Save(cart);
if (notifyCustomer)
{
_notificationService.sendnotification();
}
}
}
有基础设施的领域模型调用接口是好还是坏设计?(本例中为notificationservice和CartRepository)
【问题讨论】:
-
您确定致电客户通知是您的订单的问题吗?这对我来说似乎是应用程序级别的问题。客户结帐时需要执行的未来操作如何,例如为未来的销售提供信用、通知您的内部统计数据库、其他簿记等?你总是要修改你的 Order 类吗?对于 SPR 原则,我建议按照以下答案提出领域事件,并在独立观察者中处理该事件。
标签: domain-driven-design ddd-repositories onion-architecture