Wanted to know inputs for possible design pattern approach in java:
Scenario: Trying to create an arraylist for a combination of object and value pair. If Objects has A, B, C...etc If value has X1, X2, X3...etc
there could be an arraylist of Y1 for a combination of A & X1 there could be an arraylist of Y2 for a combination of A & X2 ..... etc, so on and so forth.
I tried with Factory Creational Design Pattern, however did not match quite good.Can anyone suggest a possible design approach for this issue ?
I cannot use Apache Pair in my implementation. ok I have added my problem Java class code:
import java.util.ArrayList;
import java.util.List;
public class FieldsProvider2 {
private MyObject object;
private MyAction action;
public FieldsProvider2(MyObject object, MyAction action) {
this.object = object;
this.action = action;
}
public List<Object> getList() {
if ((action != null && object != null)) {
if (Action.A == action) {
List<Object> fields = new ArrayList<>();
if (object.getTypeKey().equals(MYObject.X1)) {
// fields.add(Y1);
// fields.add(Y2);
// fields.add(Y3);
// fields.add(Y4);
// fields.add(Y5);
// fields.add(Y5);
// fields.add(Y6);
// fields.add(Y7);
return fields;
}
if (object.getTypeKey().equals(MYObject.X2)) {
// nothing
}
if (object.getTypeKey().equals(MYObject.X3)) {
// fields.add(Y1);
}
if (object.getTypeKey().equals(MYObject.X4)) {
// fields.add(Y1);
// fields.add(Y8);
// fields.add(Y9);
}
if (object.getTypeKey().equals(MYObject.X5)) {
// fields.add(Y1);
}
if (object.getTypeKey().equals(MYObject.X6)) {
// fields.add(Y1);
}
if (object.getTypeKey().equals(MYObject.X7)) {
// fields.add(Y1);
}
if (object.getTypeKey().equals(MYObject.X8)) {
// fields.add(Y1);
}
if (object.getTypeKey().equals(MYObject.X9)) {
// fields.add(Y9);
}
if (object.getTypeKey().equals(MYObject.X10)) {
// fields.add(Y10);
}
// Common items
// fields.add(Y11);
// fields.add(Y12);
// fields.add(Y13);
// fields.add(Y14);
// or
// fields.add(Y15);
return fields;
}
if (Action.B == action) {
List<Object> fields = new ArrayList<>();
if (object.getTypeKey().equals(MYObject.X1)) {
// fields.add(Y1);
// fields.add(Y2);
// fields.add(Y3);
// fields.add(Y4);
// fields.add(Y5);
// fields.add(Y5);
// fields.add(Y6);
// fields.add(Y7);
return fields;
}
if (object.getTypeKey().equals(MYObject.X2)) {
// fields.add(Y7);
}
}
//Action.C will start
//Action.D will start and so on...
return null;
}
}