Grails中域类的继承或标志可以吗?
我正在制作一个医生和病人都可以登录的网站Grails中域类的继承或标志可以吗?,grails,inheritance,grails-domain-class,Grails,Inheritance,Grails Domain Class,我正在制作一个医生和病人都可以登录的网站 class Doctors { String firstName String lastName String email String password String hospitalName String NPINumber } 及病人 class Patients{ String firstName String lastName String email Strin
class Doctors {
String firstName
String lastName
String email
String password
String hospitalName
String NPINumber
}
及病人
class Patients{
String firstName
String lastName
String email
String password
}
很明显,有很多重叠字段只用于身份验证/登录目的,我想知道继承是个好主意,还是应该在单个类中创建一个标志
因此,有两种选择:
备选方案1
备选方案2
我不确定我应该选择哪种设计,以便将来可以扩展 选项1更确切地说是面向对象的。然而,我仍然会做一点改变,以使设计更好。与其扩展User,不如使用包含一些公共属性的User属性。扩展用户类可能会使设计更加复杂。也许我能帮你 另外,建议不要使用复数形式的类名。想象一下,它是自身的实体,而不是实体的集合。很明显,你的班级医生,例如,代表一位医生。不超过一个。所以你应该使用医生、病人和使用者。
希望能有所帮助。我个人更喜欢扩展类用户。即使您将来添加更多数据,该方法也可以完成工作,并将集中化,这更易于阅读、维护,是一种良好的做法。
class Users{
String firstName
String lastName
String email
String password
}
class Doctors extends Users {
String hospitalName
String NPINumber
}
class Patients extends Users{
}
class Users{
String firstName
String lastName
String email
String password
boolean isDoctor
String NPINumber
String hospitalName
}