Страницы

Поиск по вопросам

пятница, 5 апреля 2019 г.

Enum как хранилище данных

Имеется абстрактный класс 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 будет хранилищем для всех единиц измерений.

Комментариев нет:

Отправить комментарий