Как моделировать объект со свойствами Dynami c? - PullRequest
2 голосов
/ 05 февраля 2020

Я пытаюсь создать программу Retail Store, просто для практики. Он состоит из простого окна с редактируемой таблицей JTable, в которой отображаются существующие предметы для продажи, а также его свойства (цена, акции, имя и т. Д. c.) Я бы хотел, чтобы эти свойства были полностью настраиваемыми (добавить или удалить любой), поэтому я решил создать класс "Item", который содержит список объектов "Property". В классе «Свойство» я записал две переменные следующим образом:

String name;
Float value;

Проблема, с которой я столкнулся, заключается в том, что, если свойство не имеет значения c? Например, название продукта. Я думал о возможных решениях этого, но я не убежден в них, поэтому я хотел бы услышать, что бы вы сделали вместо этого или что было бы лучшим вариантом с точки зрения хорошей практики программирования.

Пока что я Придумали следующие идеи:

  • Используйте строковый тип : но это не позволило бы мне оперировать со значением в виде чисел, которое может понадобиться для цен (хотя Я знаю, что могу разобраться, используя parseFloat () или аналогичный, но это не кажется оптимальным)
  • Использовать тип объекта : с этим мне нужно было бы где-то хранить, который введите значение то есть, чтобы привести его позже, я мог бы использовать для этого тип Enum, но при этом каждый раз приведение типа выглядит как жесткое кодирование, я тоже не думаю, что это хорошая идея

1 Ответ

1 голос
/ 05 февраля 2020

Даже если вы ограничитесь цифрами c свойств, цена - это другой тип числа от веса. Добавление в строковые свойства усложняет управление только одним классом свойств.

Один ответ - иметь более одного класса свойств. Один для строк, один для целых чисел и один для цен. Причина отличия цен от других чисел заключается в том, что вы хотите быть осторожными при сложении и вычитании цен.

...