我正在试验使用DDD模式构建软件。我在创建和更新数据方面没有问题。当用户填写表单时,如果涉及到业务逻辑,它将由我的域自动处理。
我的问题是,如果在检索数据时涉及到一些复杂的逻辑,那么如何检索数据呢?例如,在有折扣的订单软件中使用DDD,应该在域计算之后存储全部数据吗?或者在检索数据库时计算折扣?
谢谢你的解释。(-:
发布于 2022-03-08 06:46:23
在DDD中,您的数据库是外部关注点(基础结构的一部分),在您的模型中不起任何作用。实际上,数据库通常被抽象到一个接口中,供您的领域在其计算中使用。您可以使用DB来简单地存储和水合物模型。
回答你的问题:这取决于你的UL。例如:如果您需要“保存”订单,并在以后的某个时间以它的确切状态检索订单,您可以将折扣值存储在数据库中。或者您的域和UL需要用户传输总计。例如:余额转移应用程序,该应用程序允许应用程序将转移的金额减少一个百分比(这可能被称为服务费)。在这种情况下,减去服务费后的总数很可能会被保存。
然而,在大多数情况下,最好在域中计算折扣,因为折扣是域概念。
https://stackoverflow.com/questions/71375744
复制相似问题