MDriven中SysUser类继承疑问:是否可通过继承建模用户类型且不破坏原有功能
在MDriven中继承SysUser建模不同用户类型的可行性与注意事项
嘿,这个问题问得很关键——在MDriven里继承SysUser来区分用户类型是完全可行且推荐的做法,而且只要遵循正确的方式,完全不会破坏它固有的关联功能。我来给你拆解清楚:
一、为什么可以/应当选择继承SysUser?
- MDriven的领域建模体系原生支持这种基于继承的用户角色拆分,
SysUser本身就是作为基础用户抽象设计的,预留了充足的扩展空间。 - 继承能直接复用
SysUser内置的核心功能:比如用户认证、会话管理、与SysRole/SysSession的关联逻辑,不用从零搭建用户基础模块,大幅减少重复工作。 - 不同用户类型(如管理员、普通员工、客户)往往有专属属性或行为,子类可以按需添加,既保持用户模型的统一性,又满足差异化需求。
二、如何避免破坏SysUser的固有关联功能?
核心原则是绝不修改SysUser本身的属性、关联或内置逻辑,只在子类中做扩展:
- 子类会自动继承
SysUser的所有关联(比如和SysRole的关联、和SysSession的关联),这些关联的原有逻辑完全不受影响,你不用做任何额外配置就能正常使用。 - 举个实际例子:创建
AdminUser : SysUser子类,添加ManagedDepartments专属关联字段,这只会给管理员用户增加新的业务关联,不会干扰SysUser原有的角色分配、会话追踪等功能。 - 在MDriven模型设计器中,确保用正确的泛化关系(箭头指向
SysUser)建立继承,不要手动修改SysUser的元数据。
三、额外的最佳实践提示
- 如果需要自定义用户相关的业务逻辑,比如管理员专属的审批权限判断,直接在子类中添加方法,不要覆盖
SysUser的内置方法。 - 权限配置时,可以基于
SysUser的基础权限为子类扩展专属权限,MDriven的权限体系会自动识别继承关系,无需重新构建认证流程。
内容的提问来源于stack exchange,提问作者Henrik Leijonhufvud
相关产品推荐
相关产品推荐

