Code: Select all
public interface Units {}
public enum Length implements Units {
METRE(1.0), KILOMETRE(1000), CENTIMETRE(0.01), ...;
private final double toMetreFactor;
Length(double factor) {
this.toMetreFactor = factor;
}
public double getToMetreFactor() {
return toMetreFactor;
}
}
< /code>
In meiner ConverterDodel -Klasse habe ich derzeit Methoden wie folgt: < /p>
public double convertLength(double value, Length input, Length output) {
double base = value * input.getToMetreFactor();
return base / output.getToMetreFactor();
}
< /code>
Aber dies bedeutet, dass ich für jede Kategorie ähnliche Methoden schreiben muss (ConvertWeight, ConvertTime usw.).public double convert(double value, Units from, Units to);
Ich habe meine GUI bereits mit JCombobox eingerichtet, also übertrage ich die ausgewählten Einheiten als Einheiten. Ich kann jedoch nicht auf den Conversion -Faktor zugreifen, wenn ich nicht in die spezifische Aufzählung (z. B. Länge) gegossen wird, die sich klobig und nicht erweiterbar anfühlt. /> Ich lerne und versuche immer noch, ordnungsgemäße objektorientierte Prinzipien anzuwenden, daher wäre jeder Ratschläge für Best-Praxis wirklich hilfreich. < /p>