abstract factory pattern
The abstract factory pattern is a software creational design pattern first described in Design Patterns, the book. It provides a way to encapsulate a group of individual factories that have a common theme without specifying their concrete classes.