An abstract factory offers the interface for creating a set of related or dependant objects without explicitly specifying their classes. The type of the created objects are determined at run-time.
Abstract Factory pattern on Wikipedia.org
Abstract Factory pattern on BlackWasp.co.uk
Design Patterns: Elements of Reusable Object-Oriented Software