https://www.baeldung.com/java-decorator-pattern With regards to the above, and of course, GoF book I have a curiousity. Do I always need an abstract parent i.e. the `TreeDecorator` ? Let's assume I have a totally unique override of `decorate()` for each and every decorator implementation. Which means `TreeTopper`, `Tinsel`, `Garland`, and `BubbleLights` simple needs to implement `ChristmasTree`. Why create an additional compilation unit under the circumstances?