These design patterns are about class instantiation. This can be further divided as:
- Class creation pattern - it uses inheritance effectively in instantiation process
- Object creation pattern - uses delegation for it's process, which increases flexibility and reuse of existing code