【发布时间】:2019-08-16 04:57:56
【问题描述】:
我已经阅读了很多关于 SOLID 和域驱动设计的文章,然后是关于贫血域模型和富域模型的辩论。我个人更喜欢对象封装自己的领域知识的方法,但是由于似乎存在一些意见分歧,我有一些问题:
- 根据系统类型,主域类可能会变得相当大,即使方法的逻辑位于不同的类中。在这里忽略 Single Responsibility Principal 是否通常可以接受,或者是否有一种方法可以将具有 50 个字段和 50 个方法的 Order 封装成一个不会给您留下 1mb 类的良好结构,或者考虑到封装,这是否可以接受方法?
- 在尝试维护丰富的域模型和封装时,是否有任何指南或经验法则来说明域服务甚至域工厂仍应包含哪些内容?
【问题讨论】:
-
DDD 是设计模式和技术的集合,除其他外,它可以防止您最终获得 50 个字段怪物类。域模型不是你涂在数据库模型猪身上的口红。如果你最终得到一个 50 个字段的怪物实体,请问自己什么聚合不变量必须在事务上保持一致,这取决于 50 条数据。
标签: architecture domain-driven-design software-design solid-principles