Effective Java with Groovy - Favour Composition to Inheritance
One of the key lessons from the Gang-of-Four Design Patterns is to favour composition over inheritance to achieve better maintainability in our Object-Oriented design. However, most of the codebases written in Java seem to favour inheritance over composition. The main force behind this is the ease of implementing inheritance with