首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >软删除应该在域层建模吗?

软删除应该在域层建模吗?
EN

Stack Overflow用户
提问于 2019-06-01 17:20:32
回答 1查看 186关注 0票数 0

软删除是否应该在DDD实体中建模,或者存储库的delete方法是否应该在不增加域模型负担的情况下自行完成此操作?

我不知道这是业务逻辑还是技术问题。

如果是在实体上设置标志或更改状态的域层,这是否意味着任何可以软删除的对象都是实体而不是值对象,因为这意味着对象具有生命周期?

软删除的对象还需要在某些查询中显示,并具有取消删除它们的能力。这是否意味着它是业务逻辑,属于域层?

您还会通过更改实体上的标志并调用存储库上的update方法来处理软删除和取消删除吗?或者在存储库上有单独的delete/undelete方法?

EN

回答 1

Stack Overflow用户

发布于 2019-06-03 17:06:09

这是一个很好的问题,

它属于存储库,从技术上讲,您的客户端并不关心删除是如何完成的。即使您在一家要求保留记录的银行工作,无论是合法的还是合规的,这都可以被视为技术问题。

然而,它也属于模型:在域方面,拥有名为"archived“、"removed”、"deleted“或类似的属性并没有错,当您想要取消删除时,可以将其恢复为false。这类属性可以作为在对象上应用命令的前提条件进行检查,例如在尝试修改存档实体的属性时抛出错误。

有时界限模糊,没有完美的答案,记住没有好的或坏的模型,只有有用的模型。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56405417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档