mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-11 20:02:09 +00:00
41 lines
4.6 KiB
Markdown
41 lines
4.6 KiB
Markdown
# Технические требования «Gilded Rose»
|
||
|
||
|
||
Привет и добро пожаловать в команду «Gilded Rose». Как вы знаете, мы небольшая гостиница удобно расположенная
|
||
в известном городе под руководством дружественного управляющего по имени Эллисон. Также мы занимаемся покупкой
|
||
и продажей только самых лучших товаров. К несчастью, качество наших товаров постоянно ухудшается по мере приближения
|
||
к максимальному сроку хранения.
|
||
|
||
У нас есть информационная система, которая ведет переучет всех товаров. Система
|
||
была разработана рубаха-парнем, по имени Leeroy, который отправился за поисками новых приключений. Ваша задача
|
||
заключается в том, чтобы добавить новый функционал в нашу систему, чтобы мы могли начать продавать новую категорию
|
||
товаров. Для начала введение в нашу систему:
|
||
|
||
- Все `товары` имеют значение `срока реализации` (`SellIn`), которое обозначает количество дней, в течение которых мы должны их продать
|
||
- Все `товары` имеют значение `качества` (`Quality`), которое обозначает, насколько ценен товар
|
||
- В конце дня наша система снижает значение обоих свойств для каждого товара
|
||
|
||
Довольно просто, не правда ли? Тут-то и начинается самое интересное:
|
||
|
||
- Как только срок продажи товара истек, его качество (`Quality`) портится в два раза быстрее
|
||
- Качество (`Quality`) товара никогда не бывает отрицательным
|
||
- Для товара __"Aged Brie"__ качество (`Quality`) увеличивается с возрастом
|
||
- Качество (`Quality`) товара никогда не превышает `50`
|
||
- __"Sulfuras"__, являясь легендарным товаром, никогда не нужно продавать и его `качество` (`Quality`) никогда не уменьшается
|
||
- __"Backstage passes"__, как и __"Aged Brie"__, увеличивается в качестве (`Quality`) по мере приближения к значению срока реализации (`SellIn`):
|
||
- Качество (`Quality`) увеличивается на `2`, когда остаётся `10` дней или меньше, и на `3`, когда остаётся `5` дней или меньше, но
|
||
- Качество (`Quality`) падает до `0` после концерта
|
||
|
||
Недавно мы подписали контракт с поставщиком зачарованных товаров. Это требует обновления нашей системы:
|
||
|
||
- Зачарованные (__"Conjured"__) предметы теряют качество (`Quality`) в два раза быстрее обычных товаров
|
||
|
||
Не стесняйтесь вносить любые изменения в метод `UpdateQuality` и добавлять любой новый код до тех пор,
|
||
пока система работает корректно. Тем не менее, не меняйте класс `Item` или свойства `Items`, так как они принадлежат
|
||
сидящему в углу гоблину, который очень яростен и поэтому выстрелит в вас поскольку не верит в принцип
|
||
совместного владения кодом (вы можете сделать метод `UpdateQuality` и свойства класса `Item` статическими
|
||
если хотите, мы вас прикроем).
|
||
|
||
Просто для уточнения, товар никогда не может иметь качество (`Quality`) выше чем `50`, однако легендарный товар __"Sulfuras"__
|
||
имеет качество `80` и оно никогда не меняется.
|