Evans 写道,聚合的概念是,聚合中不是根的所有对象都不能被不是其聚合根的任何其他对象引用。 是否有任何合理的方法可以在 Java 或 C# 中强制执行此操作。也就是说,如果我在代码库中引入聚合,我是否可以确保将来对 DDD 不那么感兴趣的开发人员不会从聚合外部直接创建对子部分的引用?或者至少让他/她很难做到这一点?
最佳答案
我想不出任何方法不会过度限制实体的可用性或增加复杂性,从而超过其好处。您应该记住,对非根实体进行 transient (临时)引用是合法的,并且在某些情况下可能有用,因此基于静态范围的限制并不是真正的选择。
当谈到高层设计原则时,我倾向于依赖团队文化和开发人员指南,而不是防御性编程,因为后者通常会在某种程度上适得其反,最终会得到丑陋的过于复杂的代码以允许异常(exception)你自己设置的严格障碍。 “架构”框架属于同一类别——对于简单的应用程序来说简单且高效,但是当您开始添加异常情况时,它们很快就会成为负担而不是帮助。
关于java - 如何在 java 或 c# 中强制执行 ddd 聚合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417167/