遵循整洁架构、六边形架构时,第三方类库应归属哪一层?
JWT类库的所属分层结论
这类第三方JWT生成/校验类库的具体实现,应该放在领域层之外,归属基础设施层/适配器层范畴。
核心判断依据
整洁架构、六边形架构的分层核心判断标准完全通用:只要组件符合「和业务核心规则无强绑定、存在更换可能性、依赖外部技术实现」三个特征,就应该隔离在领域层之外。
具体到JWT类库的场景:
- 领域层只需要定义和业务规则相关的抽象能力接口,比如
令牌生成器、令牌校验器,领域内的业务逻辑只依赖这个抽象接口,不需要关心底层是用JWT、Session还是其他方案实现令牌能力。 - 第三方JWT类库的封装逻辑,就是对上述抽象接口的具体实现,你后续如果要更换JWT类库、甚至替换整个令牌实现方案,都只需要修改外层的实现代码,不会侵入到领域层,完全符合架构的隔离要求。
为什么多数资料没有提及这类组件
大部分架构入门资料只会举数据库、控制器、第三方服务这类和强IO相关的外部依赖示例,但判断逻辑不会因为是不是IO类组件发生变化。和JWT类库同类的UUID生成、密码哈希、通用数据校验等工具类依赖,都遵循同样的分层规则。
内容的提问来源于stack exchange,提问作者user8868343
相关产品推荐
相关产品推荐

