【发布时间】:2021-11-04 10:28:39
【问题描述】:
我们目前有一个更大的 Spring 项目,它由不同的项目组件组成。可惜目前封装比较不利,所以我要重构整个东西。
我们的基本框架使用逐层封装,这就是为什么我 - 至少目前 - 想在我们的项目中坚持使用它。我想问一下您认为哪种更有用:
变体 1:
- src/main/java
- com/company/core
- dao
- CoreThing1Repository
- CoreThing2Repository
- domain
- CoreThing1
- CoreThing2
- dto
- service
- CoreThing1Service
- CoreThing2Service
- com/company/component1
- dao
- Thing1Repository
- Thing2Repository
- domain
- Thing1
- Thing2
- dto
- service
- Thing1Service
- Thing2Service
- com/company/component2
- dao
- Thing3Repository
- Thing4Repository
- domain
- Thing3
- Thing4
- dto
- service
- Thing3Service
- Thing4Service
- com/company/component3
- dao
- Thing5Repository
- Thing6Repository
- domain
- Thing5
- Thing6
- dto
- service
- Thing5Service
- Thing6Service
变体 2:
- src/main/java
- com/company/dao
- core
- CoreThing1Repository
- CoreThing2Repository
- component1
- Thing1Repository
- Thing2Repository
- component2
- Thing3Repository
- Thing4Repository
- component3
- Thing5Repository
- Thing6Repository
- com/company/domain
- core
- CoreThing1
- CoreThing2
- component1
- Thing1
- Thing2
- component2
- Thing3
- Thing4
- component3
- Thing5
- Thing6
- com/company/dto
- core
- CoreThing1Repository
- CoreThing2Repository
- component1
- Thing1Repository
- Thing2Repository
- component2
- Thing3Repository
- Thing4Repository
- component3
- Thing5Repository
- Thing6Repository
- com/company/service
- core
- CoreThing1Service
- CoreThing2Service
- component1
- Thing1Service
- Thing2Service
- component2
- Thing3Service
- Thing4Service
- component3
- Thing5Service
- Thing6Service
在内容方面,我非常喜欢变体 1,因为组件出来的更好——但整个事情既不是按功能封装,也不是按层封装?你甚至应该做这样的混合吗?
您会选择哪种变体或在您的环境中使用哪种变体?
【问题讨论】:
标签: spring design-patterns package