
时长:大小13.46M
作者回复: 1、是个办法。此外还可以做一个专用于重建的Builder,或者用反射, 2、这个没错
作者回复: 员工和组织不存在“强”的整体部分关系。比如,一个员工,可能属于多个组织,一个组织删除了,不代表下面的员工也会被删除。相反,订单和订单项是聚合。你可以体会一下。
作者回复: 你说的也是一种可行的做法。Evans认为,如果构造器太复杂,就掩盖了对象的主要职责,所以这时候倾向于把构造的职责抽出来。
作者回复: 好问题。 关于分页查询,参考迭代三的CQRS。 关于成百上千个技能,这时候建议不把员工和技能作为同一个聚合,而是把每个技能作为单独的聚合。
作者回复: 有道理
作者回复: 在 application service 层有 @Transactional 注释,所以是在同一个事务。难道我在代码中漏了?
作者回复: 1 之所以总是更新Emp,是因为乐观锁(version字段)放在了 Emp 上。如果不想更新Emp,可以另外找一个地方放乐观锁。 2. 目前EmpUpdator用到了DTO,如果直接放到领域层,分层架构的依赖关系就错了,如果一定要放到领域层,那么可以在领域层再定义一层DTO。另外,EmpUpdator 并不是典型的领域逻辑,课程里应该说过,需要和领域专家聊的逻辑才是领域逻辑。
作者回复: 是的,都有这些字段。至于要不要这么做,取决于你的权衡。
作者回复: 第一点,关键是从数据库查到值以后,怎么构建领域对象。第二点,确实是悲观锁的可行做法。
作者回复: 3. 可以拆开。目前实际上共享了Emp中的一把锁(version字段),如果拆开,需要用多把锁。