Factory Pattern
Provides an interface for creating objects without specifying their concrete classes
Hides the complexity of objects
Example: creation of different GUI elements in Swing (each element is represented by different class depending on the Look-and-Feel)