Examples of the GoF Design Patterns coded in Java