用户认证系统
使用场景: 后端开发者,设计认证服务
User { id: UUID, email: string, passwordHash: string }
+ login(email, password): Token
+ logout(token): void
+ resetPassword(email): void
Token { value: string, expiresAt: DateTime, userId: UUID }
Role { name: string, permissions: string[] }
User *── * Role(多对多)
这样组织的原因: 在实现之前建模认证,会提前暴露设计问题:Token 应该是值对象还是实体?Role 和 Permission 应该分开吗?画图强迫在写代码前做出这些决定。
