• ,

task.task26.task2613 Задание 8

CashMachine (8)

Пора привести в порядок наш main, уж очень там всего много, чего не должно быть.

1. Перенеси логику из main в DepositCommand и InfoCommand.

Проверим, что там стало с main? Цикл, в котором спрашиваем операцию у пользователя, а потом вызываем метод у CommandExecutor.

И так до бесконечности… надо бы придумать условие выхода из цикла.

Исправь цикл, чтоб он стал do-while. Условие выхода — операция EXIT.

2. Давай запустим прогу и пополним счет на EUR 100 2 и USD 20 6, и посмотрим на INFO.

Ничего не понятно, т.к. создались 2 манипулятора: первый для EUR, второй для USD.

Давай улучшим логику InfoCommand. Надо вывести баланс по каждому манипулятору.

2.1. В классе CurrencyManipulatorFactory создай статический метод getAllCurrencyManipulators(), который вернет Collection всех манипуляторов.

У тебя все манипуляторы хранятся в карте, не так ли? Если нет, то отрефактори.

2.2. В InfoCommand в цикле выведите [код валюты — общая сумма денег для выбранной валюты].

Запустим прогу и пополним счет на EUR 100 2 и USD 20 6, и посмотрим на INFO.

Все работает правильно?

EUR — 200

USD — 120

Отлично!

3. Запустим прогу и сразу первой операцией попросим INFO. Ничего не вывело? Непорядок.

Добавь в манипулятор метод boolean hasMoney(), который будет показывать, добавлены ли какие-то банкноты или нет.

4. В InfoCommand используй метод п.3. и выведите фразу «No money available.«, если нет денег в банкомате.


Никак не могу пройти это задание, валидатор агрится на следующее — В классе InfoCommand в методе execute() для каждого манипулятора выведи: «код валюты — общая сумма денег для выбранной валюты», если денег нет в банкомате выведи фразу, «No money available.». Перепробовал кучу вариантов, включая читерство — может кто подскажет что не так?

КОД ВЫПИЛЕН

1 комментарий

odium
спустя некоторое время вернулся к решению этой задачи… На всякий случай для тех кто как я очень долго пробивал валидатор — код валюты должен выводиться КАПСОМ и только так. Надеюсь кому то поможет.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.