Support this and all my katas via Patreon
Can you spot any code smells in this code? I'll give you a clue - a spot of Pol(l)ymorphism should improve matters!
Refactor this code, take small steps, run the tests often. See how small and beautiful and polymorphic you can make it.
This code is heavily inspired by one of the examples in Martin Fowler's book "Refactoring". It's a classic, and if it's not on your bookshelf already I suggest you treat yourself to a copy!
Parrot Refactoring Kata.
This is a Maven and a Gradle project at the same time.
To install dependencies:
mvn verify
The project uses JUnit.
To run the test:
mvn test