- Provides an interface for creating objects in superclass
- Allows subclasses to alter the type of object that will be created.
- Replace direct Object construction calls using the new operator with calls to special factory method.
- It decouples object creation logic dramatically.
TODO
TODO
TODO
TODO
TODO
TODO