首先也是最关键的一点:在Maven项目中,代码分层是通过pom的组织关系实现的。如果想按照更明显的依赖关系,如Application bundle包含assmbler和service两个bundle,会发现配置起来很麻烦也很容易出错,其他层bundle跨层依赖时也很难受。方便起见,可以仅仅通过命名(甚至是约定俗成)来体现哪个bundle属于哪一层,bundle之间的依赖通过pom解决。
DO和Domain Model的Convert放在哪里?假如Repository接口放在Domain层,实现放在Infrastructure层,会发现Repository操作的是Domain Model,强行让Infrastructure的dal层不得不依赖Domain Model层,破坏了上层依赖下层的关系。因此只能将Convert放在Domain层,直接对DO的操作显得很刺眼,单独再抽一层又十分的冗余