mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-10-14 01:55:46 +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` и оно никогда не меняется.
|