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. "