Я дам минималистский пример, чтобы объяснить мой вопрос. Предположим, что существует Shape
класс:Имеет ли переменная класса право на существование, если ее значение может быть рассчитано с использованием других данных?
public class Shape {
User user;
int color;
}
и User
класс:
public class User {
int mood;
}
Теперь предположим, что цвет форма зависит от настроения пользователя. Является ли это избыточным для Shape
, чтобы иметь поле color
, так как оно может быть рассчитано путем доступа к его настроению user
?
Учтите, что в более реалистичном примере доступ к необходимым данным для расчета цвета может быть более сложным или с помощью более длинной последовательности аксессуаров (color = user.getCat().getCousin().getMood()
). Рассмотрим далее, что эти классы могут быть сопоставлены с базой данных и (в некотором смысле) дублирующимися данными. С другой стороны, они могут быть отмечены как переходные.
Цвет зависит от настроения, но цвет не совпадает с настроением. Поэтому включение поля color
кажется мне логичным, однако я не могу полностью оправдать этот дизайн.
Имеет ли переменная класса право на существование, если ее значение может быть рассчитано с использованием других данных?