Abstract Factory

This Design Pattern stems from [DP95], pp. 87. There the pattern is described as:

"Provide an interface for creating families of related or dependent objects without specifying their concrete classes. "