Ich bin nicht sicher, was die beste Lösung für die Bindung vieler nicht kennender Informationen in Java an eine Konstante wäre. Ich glaube, Enums werden funktionieren, aber als ich objektorientiertes Design gelernt habe, betonte mein Ausbilder wirklich, dass Enums normalerweise nicht angemessen sind, wenn Sie eine große Menge davon haben, oder dass sie das Verhalten über eine einfache Switch-Anweisung über eine einfache Switch-Erklärung hinaus fördern. Im Moment interessiere ich mich mehr an Statistiken und Spielmechanik, um beim Ausführen von Spielen zu verweisen, als an der Kartengenerierung. Irgendwann muss die Roomlist wahrscheinlich zu einer Diagrammstruktur übergehen, um Knoten zu verwenden, aber im Moment möchte ich nur alle meine Zimmer an einem Ort sammeln. Der Raum selbst sollte ein Objekt sein, da jedes Schiff einzigartig ist, aber meine Zimmertypen werden sich nie ändern. Ich habe eine Liste von etwa 134 Zimmertypen, aber ich habe das auf etwa 65 zusammengefasst und werde weiterhin daran arbeiten, diese Liste kleiner zu machen. Zum Beispiel hatte meine ursprüngliche Liste Science Lab, Xenobiology Lab, Geology Lab, Botany Lab, Astronomy Lab alle als separate Einträge. Ich kann all dies darstellen, indem ich sie generisch als Wissenschaftslabors beziehe.public enum ScienceLabType implements RoomSubType {
GENERIC("Science Lab"),
XENOBIOLOGY("Xenobiology Lab", new ArrayList(Arrays.asList("Dissection kit", "Specimen tank"))),
ASTRONOMY("Astronomy Lab", new ArrayList(Arrays.asList("Telescope", "Astrolabe"))),
GEOLOGY("Geology Lab", new ArrayList(Arrays.asList("Hammer", "Smaller hammer"))),
BOTANY("Botany Lab", new ArrayList(Arrays.asList("Watering can", "Grow light"))),;
private String displayName;
private final ArrayList roomContents;
ScienceLabType(String displayName, ArrayList roomContents) {
this.displayName = displayName;
this.roomContents = roomContents;
}
ScienceLabType(String displayName) {
this.displayName = displayName;
this.roomContents = new ArrayList();
}
@Override
public String getDisplayName() {
return displayName;
}
public ArrayList getRoomContents() {
return roomContents;
}
}
< /code>
RoomType könnte dann angeben, welche Subtypen geeignet sind: < /p>
public enum RoomType {
SCIENCE_LAB("Science Lab", RoomCategory.SCIENCE_RESEARCH, new ArrayList(Arrays.asList(STORAGE, OFFICE)), new ArrayList(Arrays.asList("Computer", "Microscope", "Eyewash Station")), ScienceLabType.class);
private String displayName;
private final RoomCategory roomCategory;
private final ArrayList ancillaryRooms;
private final Class
Bester Ansatz zur Verwaltung einer großen Anzahl von Konstanten, um die Erstellung von Objekten in Java zu informieren ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post