Java 根据对象的属性将对象设置为特定类型

Java 根据对象的属性将对象设置为特定类型,java,algorithm,design-patterns,Java,Algorithm,Design Patterns,我有以下要求 假设有2个属性,其中每个属性可以有3个值中的一个(多选),因此我们可以有2 x 3=6个不同类型的对象 给定一个具有这些属性值的对象,我需要将其映射到特定类型 在Java中实现这一点的最佳方法是什么?有没有我可以考虑的设计模式?< p>这里是使用 EnUM 实现2x3选项:的例子。 enum Types { TYPE1('A',1), TYPE2('A',2), TYPE3('B',1), TYPE4('B',2), TYPE5('C',1

我有以下要求

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

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


在Java中实现这一点的最佳方法是什么?有没有我可以考虑的设计模式?

< p>这里是使用<代码> EnUM <代码>实现2x3选项:

的例子。
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;
    }

}
在上面的示例中,您可以使用以下字符之一创建
类型.TYPE1,…,Types.TYPE6
:A,
B
C
和一个int:
1
2


当然,这只是一个示例,您可以用所需的任何其他属性替换
char
int

为什么不使用一个同时具有这两个属性作为字段的POJO,读取POJO并推断出所需的值?您必须将其映射到其他对象吗?一个具有2个
枚举的类,每个枚举都有3个值。我将为不同的类型创建一个枚举,在对象中创建该枚举的私有实例,然后决定如何适当设置该枚举字段,以及如何从外部类使用它?@NinaBingle将其作为单独的问题与具体示例一起发布,我会告诉你怎么做。@ninappingale你是说像
类型。TYPE1
还是
类型。TYPE6
就像它在答案中建议的那样?@PeterLawrey:我是说如何调用
类型(char x,int I)
-比如
新类型('A',5)
或者其他方式?@ninappingale不,您可以调用
Types.Type1
或在枚举中实现另一个方法:
Types-getType(char x,int i)