本文仅做个人记录。
项目需要一个顶层包,这和采用其他类型设计的项目没有区别。比如:
顶层包:com.mycompany.myprjname [myprjname为项目的名称]
每个限界上下文使用一个单独的工程来表示,这个功能的包命名在myprjname 下一层:
com.mycompany.myprjname.cumtomer.domain, [cumtomer表示“客户”这个上下文的主要包],基本应该不含类和接口的定义
com.mycompany.myprjname.cumtomer.domain.model,可包含实体,值对象,服务等,服务不单独设置包(可能导致贫血模型)
在下面可分模块,模块在customer下再分包:
com.mycompany.myprjname.cumtomer.repository 【存储库的包】
com.mycompany.myprjname.cumtomer.infrastructure 【基础架构包】
这些包不参与领域模型的直接功能,定义到子包下没有什么影响。