Code examples inspired by Refactoring by Fowler, Effective Java by Bloch and more...
The lessons are tagged with TODO comments in the code.
Lesson 0: Refactoring one step at a time [Fowler's Refactoring Chapter1]
Lesson 1: Builder pattern [EffectiveJava item 2]
Lesson 2: Tagged class vs Class Hierarchy [EffectiveJava item 20]
Lesson 3: Args shows a problem that can be solved with a heterogeneous container [EffectiveJava item 29]
Lesson 4: KeyboardInput shows bitfields vs EnumSet [EffectiveJava item 32]
Lesson 5: Git shows an example of how to handle commands, is a Command/Strategy Pattern perhaps more applicable? [EffectiveJava item 34]
Lesson 6: TmdbScraper is using javax.xml.parsers and org.w3c.dom to parse xml, is there any other way? [EffectiveJava item 47]
Lesson 7: Factory method
Lesson 8: Decorator/Forwarding/Proxy Pattern