我有以下要求。根据对象的属性将对象置于某种类型
假设有2个属性,其中每个属性可以有3个值之一(多选)因此,我们可以有2 x 3 = 6个不同类型的对象。
给定一个具有这些属性值的对象,我需要将它映射到某种类型。
在Java中这样做的最好方法是什么?有没有我可以考虑的设计模式。
我有以下要求。根据对象的属性将对象置于某种类型
假设有2个属性,其中每个属性可以有3个值之一(多选)因此,我们可以有2 x 3 = 6个不同类型的对象。
给定一个具有这些属性值的对象,我需要将它映射到某种类型。
在Java中这样做的最好方法是什么?有没有我可以考虑的设计模式。
下面是使用enum
来实现的2x3选项的例子:A
,B
,C
和一个:
enum Types {
TYPE1('A',1),
TYPE2('A',2),
TYPE3('B',1),
TYPE4('B',2),
TYPE5('C',1),
TYPE6('C',2);
private final char x;
private final int i;
Types(char x, int i) {
this.x = x;
this.i = i;
}
}
在上面的例子中,你可以通过使用字符之一创建Types.TYPE1,...,Types.TYPE6
每一个整数:1
,2
。
当然,这只是一个例子,您可以用您需要的任何其他属性替换char
和int
。
为什么你不会只有一个POJO,它具有字段属性,阅读POJO,并推断出你需要的值?你必须把它映射到其他东西吗? – Makoto
一个带有2个'enums'的类,每个类都有3个值.. – TheLostMind
我会为不同类型创建一个枚举,在你的对象中创建一个枚举的私有实例,然后决定如何适当地设置这个枚举字段 – Tonio