2014-07-15 100 views
1

我有以下要求。根据对象的属性将对象置于某种类型

假设有2个属性,其中每个属性可以有3个值之一(多选)因此,我们可以有2 x 3 = 6个不同类型的对象。

给定一个具有这些属性值的对象,我需要将它映射到某种类型。

在Java中这样做的最好方法是什么?有没有我可以考虑的设计模式。

+0

为什么你不会只有一个POJO,它具有字段属性,阅读POJO,并推断出你需要的值?你必须把它映射到其他东西吗? – Makoto

+0

一个带有2个'enums'的类,每个类都有3个值.. – TheLostMind

+1

我会为不同类型创建一个枚举,在你的对象中创建一个枚举的私有实例,然后决定如何适当地设置这个枚举字段 – Tonio

回答

2

下面是使用enum来实现的2x3选项的例子:ABC和一个:

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

当然,这只是一个例子,您可以用您需要的任何其他属性替换charint

+0

和如何从外部类使用它? –

+1

@NinadPingale将其作为一个单独的问题与一个具体的例子,我会告诉你如何。 – alfasin

+0

好的,我会发布它。 –