我有一个基本的用户模型,可以满足一般用户的所有需求。我现在需要为用户创建几个不同的角色,每个角色都有大约 10-20 种其他角色无法使用的不同方法。
假设我必须加载通用 User 类来确定用户的角色......
由于将这么多不同的基于角色的方法打包到通用用户模型中(当它们不能被所有角色使用时)是低效和繁重的,所以只有当用户访问他们的基于角色的方法时,最好的方法是什么?需要他们吗?
以下是我折腾的一些想法:
每个角色有一个单独的服务类,并根据用户的角色将它们交给User类
简单地围绕用户类中的所有方法,只有当用户具有正确的角色时才允许访问每个方法。
完全重构并使基于角色的类继承自 User 类。
这些好主意中的任何一个,还是有更好的主意?