在单体应用中,聚合根与代码访问控制
Opened this issue · 2 comments
wangyuheng commented
举例为3层实体结构 Project
1->N Milestone
1->N Task
为实现高内聚的目的,操作实体时,通过对应的聚合根进行访问操作。
- 如何通过访问控制在代码编译层面实现相关控制?比如放在不同的package下,聚合根为public 实体对象为default。如果这样限制,无法访问内部实体的行为操作。比如更新
Task
的name。 如果放在同一个class中?通过内部类? - 如果存在多层级时,如何控制?如何体现层级、兄弟节点的关系?
- 如果Project作为聚合根,会不会变成定义的全部实体全部被划分到一个边界上下文内?
Nest-Based Access Control?
wangyuheng commented
在DDD开发落地过程中,有很多约定需要遵守,比如只能通过聚合根访问不同域。约定总是不靠谱的,所以需要考虑在代码层面进行控制。只将 聚合根 作为public class
wangyuheng commented
在graphql方法中可以通过getSource 获取上级调用对象,是否表明下级可以调用上级对象?