mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 12:22:12 +00:00
44 lines
4.7 KiB
Plaintext
44 lines
4.7 KiB
Plaintext
======================================
|
||
Технические требования «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 и оно никогда не меняется.
|