Some Java Design Patterns