nuclear_kote
@nuclear_kote

Почему enum должен быть immutable?

Разработчик сделал из енума контейнер. Как объяснить почему так делать не надо? Может есть статья какая-нибудь? Кроме того что это синглтон ничего в голову не приходит
  • Вопрос задан
  • 324 просмотра
Решения вопроса 1
@Dmtm
Android
в такой реализации будут проблемы с конкурентным доступом,
как аргумент - нарушение общепринятого стиля кодирования = проблемы конторы при смене разработчика,
знаю ситуацию когда одного кодера уволили за упрямое не соблюдение ява-соглашений
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Потому что иммутабельность это вообще хорошо. И обычно, видя енам, ожидаешь, что он иммутабельный.
Чем он аргументирует такой подход?
Ответ написан
Комментировать
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Хорошо или плохо надо смотреть по ситуации. Аналогичная ситуация с интерфейсами в которые суют default реализации.
К примеру приблизительно такую реализацию я не считаю плохой:
public enum Model {
       CYLINDER(new Cylinder(), "Cylinder"),
       CONES(new Cone(), "Cones"),
       BOX(new Box(), "Box"),
       Line(new Line(), "Line");

       private final String label;
       private final Model model;

       Model(Model model, String label) {
           this.model = vis;
           this.label = label;
       }
       public Model getVisualization() {
           return this.model;
       }
       public String getLabel() {
           return this.label;
       }
   }

Ситуация когда туда пихают вообще все что непопадя уже проблема.
Приведите живой пример что он у вас туда напихал.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы