Abstract factory pattern (source code)

= Abstract factory pattern
{wiki}

Provide an interface for creating a family of related products while hiding their concrete <software classes>. Unlike a single <factory method pattern> operation returning one product abstraction, an abstract factory typically exposes several related product-creation operations whose implementations coordinate a consistent family.