Clean Architecture中能否跨Feature共享模型与实体?是否通过Core目录实现?
问题解答
原应用文件夹结构
app core features feature1 domain entities entity1 entity2 entity3 entity4 entity5 entity6 data models model1 model2 model3 model4 model5 model6 presentation feature2 domain entities entity1 entity2 entity3 entity4 entity5 entity6 data models model1 model2 model3 model4 model5 model6 presentation
核心问题解答
1. Clean Architecture是否允许跨多个Feature共享模型与实体?
完全允许。Clean Architecture的核心是依赖倒置与关注点分离,只要这些模型/实体是多个Feature共同依赖的通用业务概念(而非某个Feature专属的业务逻辑),抽离出来共享就是符合架构原则的做法——这能有效避免代码重复,降低维护成本,同时保证业务概念的一致性。
2. 是否可通过core目录实现该操作?
当然可以,core目录的核心职责就是存放应用全局通用的核心组件,包括通用实体、模型、工具类、基础业务规则等。调整后的推荐结构如下:
app core domain entities entity1 entity2 entity3 entity4 entity5 entity6 data models model1 model2 model3 model4 model5 model6 features feature1 domain # 仅存放Feature1专属的业务实体 data # 仅存放Feature1专属的数据模型、数据源实现 presentation feature2 domain # 仅存放Feature2专属的业务实体 data # 仅存放Feature2专属的数据模型、数据源实现 presentation
关键注意事项
- 严格控制
core目录的内容:只有不依赖任何Feature、多个Feature都会用到的通用组件才能放入,避免将Feature专属逻辑塞进core,防止其变成职责模糊的“大杂烩”。 - 保持
core的稳定性:通用实体/模型的变更会影响所有依赖它的Feature,修改前需充分评估影响范围。 - Feature专属内容仍留在各自目录:每个Feature只维护自身特有的业务逻辑和数据处理代码,保持职责清晰。
内容的提问来源于stack exchange,提问作者anonymous-dev
相关产品推荐
相关产品推荐

