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