Проект симулирует работу торгового автомата.
В наш автомат мы можем закинуть монетки, а он будет показывать, какие товары он может продать и в каком количестве. Этот список формируется в зависимости от товаров находящихся в автомате, и того, какие из них мы можем позволить купить.
Например в автомате есть следующие товары:
Вода. Стоимость 20
Кокакола Стоимость 50
Содовая. Стоимость 30
Сникерс. Стоимость 80
Марс. Стоимость 80
Фисташки. Стоимость 130
Пока мы не закинем как минимум 25, и нам автомат показывает список, но говорит "Ничего не купишь, кидай еще".
В автомате доступны:
[20] - Water
[50] - Coca Cola
[30] - Soda
[80] - Snickers
[80] - Mars
[130] - Pistachios
Монет на сумму: 0
a - Пополнить баланс
h - Выйти
Как только мы закинем достаточно для покупки хотя бы одного товара, то автомат начнет показывать в списке, какие товары мы можем купить.
В автомате доступны:
[20] - Water
[50] - Coca Cola
[30] - Soda
[80] - Snickers
[80] - Mars
[130] - Pistachios
Монет на сумму: 30
a - Пополнить баланс
b - Water
d - Soda
h - Выйти
Вводя букву/цифру, мы можем указывать какой товар из доступных мы хотим купить.
Задание:
Выделите в виде отдельного компонента деньгоприемник. Продумайте интерфейс взаимодействия автомата с этим компонентом. Он должен быть достаточно общим, чтобы могли заменять его по необходимости. Например мы сможем создать автомат, который принимает только банковские карточки (то есть он будет спрашивать номер карточки и одноразовый пароль), а затем сменить карто-приемник на монетоприемник (со своим текстовым интерфейсом), и автомат теперь сможет принимать монеты, и продолжать работать как обычно.