Conversation
| scanner.useDelimiter("\n"); | ||
| scanner.useLocale(Locale.ENGLISH); //десятичная точка вместо запятой | ||
| System.out.println("Введите список товаров"); | ||
| while (true) { |
There was a problem hiding this comment.
Не стоит запускать бесконечный цикл прямо в конструкторе класса, лучше вынести это в отдельную функцию, например start(), а в конструкторе класса оставить только конфигурацию объекта и его полей
| productList.add(product); | ||
| PriceFormatter formatter = new PriceFormatter(product.price); | ||
| System.out.println("Товар " + product.name + " со стоимостью " + formatter.getFormattedPrice() + " успешно добавлен"); | ||
| totalAmount += product.price; |
There was a problem hiding this comment.
totalAmount можно не считать отдельно, так как возможна рассинхронизация. Для консистентности можно вычислять общую стоимость, пробежавшись по списку товаров в цикле и посчитав сумму всех price
There was a problem hiding this comment.
Не согласен, так как в ТЗ было:
При добавлении товара в калькулятор нужно считать текущую общую сумму всех товаров.
В изначальном варианте был именно отдельный цикл, но исправил после внимательного чтения ТЗ
| double price; | ||
| /** | ||
| * Название товара | ||
| */ | ||
| String name; |
There was a problem hiding this comment.
Поля лучше делать final или private. В случае с private, чтобы изменить значение поля, принято писать функции-сеттеры
| @@ -0,0 +1,34 @@ | |||
| import java.util.Locale; | |||
|
|
|||
| public class PriceFormatter { | |||
There was a problem hiding this comment.
Можно функции в этом классе пометить ключевым словом static, чтобы не приходилось каждый раз создавать объект этого класса. Нужно будет ещё price добавить в качестве аргументов функций. Таким образом, можно будет не создавать инстанс класса, а сразу вызывать функции, например PriceFormatter.getFormattedPrice(price)
There was a problem hiding this comment.
Изначально так и было, потом почему-то переделал на этот вариант.
Принято.
No description provided.