Evans写道,聚合的概念是这样的:聚合的所有不是根的对象都不能被不是聚合根的其他任何对象引用。是否有任何合理的方法可以用Java或C#实施。也就是说,如果我在代码库中引入了聚合,那么可以确保将来没有对DDD不太感兴趣的开发人员不会直接从聚合外部创建对子部件的引用吗?或者至少使他/她很难做到这一点?
我想不出任何方式都不会过度限制实体的可用性或增加复杂性,而这些复杂性将超过收益。您应记住,对非根实体的临时(临时)引用是合法的,并且在某些情况下可能有用,因此基于静态作用域的限制并不是真正的选择。
当涉及到高级设计原则时,相对于防御性编程,我倾向于更倾向于依赖团队文化和开发人员指南,因为后者通常会适得其反,并且您最终会得到丑陋的,过于复杂的代码,从而允许对僵化障碍进行例外处理你自己设定。“建筑”框架属于同一类-对于简单的应用程序直接且高效,但是当您开始添加异常案例时,它们很快就会成为负担,而不是帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句