Имеется абстрактный класс Measurments. Все типы Measurments наследуют данный класс - Temperature, Rainfall и т.д. У каждого типа есть значение и единица измерения. Мне подсказали, что для всех типов единицы измерения нужно создать один enum. Подскажите пожалуйста, как должен выглядеть такой enum и как его связать с каждым классом, где единицы измерений (%, м/сек, мм/кв.м, ю/с/з/в и т.д.)?
Ответ
Хранение единиц измерений можно реализовать так:
public enum Unit {
TEMP("C"), // Температура
WIND("м/сек"), // Скорость ветра
PREC("мм"); // Осадки
private String unit;
Unit(String unit) {
this.unit = unit;
}
public String value() {
return unit;
}
}
Для направления ветра:
public enum WindDirection {
NORTH("север"),
EAST("восток"),
...;
private String direction;
Units(String direction) {
this.direction = direction;
}
public String value() {
return direction;
}
}
Использование:
public class Wind extends Measurments {
private static final String UNIT = Unit.WIND.value();
private String value;
private WindDirection direction;
Wind(String value, WindDirection direction) {
this.value = value;
this.direction = direction;
}
public String toString() {
return "Ветер: " +
"скорость " + this.value + " " + UNIT + ", " +
"направление " + this.direction.value();
}
}
Таким образом Unit будет хранилищем для всех единиц измерений.
Комментариев нет:
Отправить комментарий