Java Design Patterns

Reusable solutions to common software design problems (Singleton, Factory, Observer).