grails:一个字段,多个 类
grails: one field, multiple classes
我想使用 Grails 应用程序跟踪电机。在某些情况下,电机的位置会发生变化,但位置类型也会发生变化。如何有效地存储当前位置?
第一次尝试是:
class Motor {
String motornumber
Locationtype lt
}
class Locationtype {
String type
}
class Machine {
String machinenumber
}
class Repaircompany {
String companyname
}
根据 Locationtype lt
是 {"Machine","Repair"}
之一,电机对象应存储电机所在的机器 ID 或维修公司 ID。 "Machine"表示:Motor部署在机器上,"Repair"表示:Motor当前正在维修中。
所以我想要一个字段 location
作为 Motor
中的一个字段,但是是哪种类型?我知道,每次访问 location
时,我都必须评估 lt
。
我在考虑特征中的字段。我会偏离轨道还是那样做?
这里有很多可能的解决方案,根据所提供的有限信息,none必然比另一个更好。两种可能的解决方案:
最简单:向 Motor
对象添加一个可为空的 Machine
字段和一个可为空的 Repaircompany
字段。然后可以填充其中一个(或者从技术上讲两者),您可以根据需要从这些值中工作。
可能更好:创建一个 Location
基础 class(可以是抽象的)并从中扩展 Machine
和 Repaircompany
。在 Motor
中,创建一个 Location
类型的字段,然后可以用 subclass.
填充
对于任何一种解决方案,您可能都不再需要 Locationtype
。您可以确定通过哪个字段填充(对于解决方案 1)或通过 subclass(对于解决方案 2)。
我想使用 Grails 应用程序跟踪电机。在某些情况下,电机的位置会发生变化,但位置类型也会发生变化。如何有效地存储当前位置?
第一次尝试是:
class Motor {
String motornumber
Locationtype lt
}
class Locationtype {
String type
}
class Machine {
String machinenumber
}
class Repaircompany {
String companyname
}
根据 Locationtype lt
是 {"Machine","Repair"}
之一,电机对象应存储电机所在的机器 ID 或维修公司 ID。 "Machine"表示:Motor部署在机器上,"Repair"表示:Motor当前正在维修中。
所以我想要一个字段 location
作为 Motor
中的一个字段,但是是哪种类型?我知道,每次访问 location
时,我都必须评估 lt
。
我在考虑特征中的字段。我会偏离轨道还是那样做?
这里有很多可能的解决方案,根据所提供的有限信息,none必然比另一个更好。两种可能的解决方案:
最简单:向 Motor
对象添加一个可为空的 Machine
字段和一个可为空的 Repaircompany
字段。然后可以填充其中一个(或者从技术上讲两者),您可以根据需要从这些值中工作。
可能更好:创建一个 Location
基础 class(可以是抽象的)并从中扩展 Machine
和 Repaircompany
。在 Motor
中,创建一个 Location
类型的字段,然后可以用 subclass.
对于任何一种解决方案,您可能都不再需要 Locationtype
。您可以确定通过哪个字段填充(对于解决方案 1)或通过 subclass(对于解决方案 2)。