This document discusses creational design patterns including factory method, abstract factory, and simple factory patterns. It provides definitions and examples of when each pattern should be used. The factory method pattern is used when classes delegate responsibility for object instantiation to subclasses, while abstract factory is used when families of related objects are designed to be used together and their instantiation must be consistent. Code examples are provided to illustrate simple factory, factory method, and abstract factory patterns. Session resources including presentation notes and code sources are also listed.