Design Patterns in Java

A design pattern is a predefined solution to a common software problem.