This is a Java implementation of the famous "Gilded Rose Refactoring Kata" exercise. The original repository contains the full explication and the code base in multiple programming languages.
The implementation is based on the following concepts:
I categorized the items in 5 categories:
- Aged Brie
- Legend
- Backstage
- Conjured
- Generic
The business logic of each type is implemented in the specific processor (strategy pattern). The processors are instantiated by the ItemProcessorFactory (factory pattern). The Exception Handling shows how errors and exceptions should be managed in Functional Programming.