GildedRose-Refactoring-Kata/GildedRoseRequirements_ru.md
Alexander Kahoun 5cae7b7d72
Sibi stack
2021-03-30 14:07:34 -07:00

4.7 KiB
Raw Blame History

====================================== Технические требования «Gilded Rose»

Привет и добро пожаловать в команду «Gilded Rose». Как вы знаете, мы небольшая гостиница удобно расположенная в известном городе под руководством дружественного управляющего по имени Эллисон. Также мы занимаемся покупкой и продажей только самых лучших товаров. К несчастью, качество наших товаров постоянно ухудшается по мере приближения к максимальному сроку хранения. Существует информационная система, которая ведет переучет всех товаров. Система была разработана рубаха-парнем, по имени Leeroy, который отправился за поисками новых приключений. Ваша задача заключается в том, чтобы добавить новый функционал в нашу систему, чтобы мы могли начать продавать новую категорию товаров.

В общих чертах система работает следующим образом:

- Все товары имеют свойство «sellIn» (срок хранения), которое обозначает количество
дней в течение которых мы должны продать товар;
- Все товары имеют свойство «Quality» (качество), которое обозначает насколько качественным является товар;
- В конце дня наша система снижает значение обоих свойств для каждого товара.

Довольно просто, не правда ли? Тут-то и начинается самое интересное:

- После того, как срок храния прошел, качество товара ухудшается в два раза быстрее;
- Качество товара никогда не может быть отрицательным;
- Для товара «Aged Brie» качество увеличивается пропорционально возрасту;
- Качество товара никогда не может быть больше, чем 50;
- «Sulfuras» является легендарным товаром, поэтому у него нет срока хранения и не подвержен ухудшению качества;
- Качество «Backstage passes» также, как и «Aged Brie», увеличивается по мере приближения к сроку хранения.
Качество увеличивается на 2, когда до истечения срока хранения 10 или менее дней и на 3,
если до истечения 5 или менее дней. При этом качество падает до 0 после даты проведения концерта.

Недавно мы нашли поставщика магических товаров. Для того, чтобы продавать его товары необходимо обновить нашу систему следующим образом:

- «Conjured» товары теряют качество в два раза быстрее, чем обычные товары.

Не стесняйтесь вносить любые изменения в метод «UpdateQuality» и добавлять любой новый код до тех пор, пока система работает корректно. Тем не менее, не меняйте класс «Item» или его свойства, так как он принадлежит сидящему в углу гоблину, который очень яростен и поэтому выстрелит в вас поскольку не верит в принцип совместного владения кодом (вы можете сделать метод «UpdateQuality» и свойства класса «Item» статическими если хотите, мы вас прикроем).

Просто для уточнения, товар никогда не может иметь качество выше чем 50, однако легендарный товар «Sulfuras» имеет качество 80 и оно никогда не меняется.