我试图在我的应用程序模块中实现DDD架构,并且遇到在它们之间存储类似(依赖)结构的问题。
在第一个包中,我存储了与实体人:服务(存储库),控制器,模型等相关的所有内容......
在第二个包中,我存储了与另一个实体公寓:服务(存储库),控制器,模型等相关的所有内容......
每个公寓可以包含多个租户,这些租户与人员的结构存储在数据库中。
某些公寓套餐服务应该能够调用get / update / ... 租户等方法。我很乐意不重新实施这些操作并从人员包 PeopleService 中的实现中使用它们,但该服务返回人员实体,而不是租户。
我是否应该将人的其他结构(复制粘贴整个源代码)创建到公寓包中,将其命名为租户并转换返回 PeopleService 的类型吗?
还是有其他办法吗?
此外,我应该在哪里存储具体实体的服务/存储库(具有类似CRUD的方法的接口)的接口?界面 PeopleService 是否应该在人和公寓包中?
感谢。
答案 0 :(得分:3)
可能有不同的方法,坦率地说,这个问题可能应该过于宽泛和过时。基于意见。
我可能会这样做:
将所有关联的模型分离到单独的包models
中。
使用人物组合 - >租户,例如
type Person { Name string }
type Tenant struct { Person }
tenants
。人与人的服务公寓。