🎉 Hooray! After 3 years of work, I've finally released the ebook on design patterns! Check it out »
Abstract Factory

Abstract Factory in PHP

Abstract Factory is a creational design pattern, which solves the problem of creating entire product families without specifying their concrete classes.

Abstract Factory defines an interface for creating all distinct products, but leaves the actual product creation to concrete factory classes. Each factory type corresponds to a certain product variety.

The client code calls creation methods of a factory object instead of creating products directly with a constructor call (new operator). Since a factory corresponds to a single products variant, all its products will be compatible.

Client code works with factories and products only through their abstract interfaces. It allows the same client code work with different products. You just create a new concrete factory class and pass it to client code.

  • If you can’t figure out the difference between various factory patterns and concepts, then read our Factory Comparison.
Learn more about Abstract Factory

Usage of the pattern in PHP

Complexity:

Popularity:

Usage examples: The Abstract Factory pattern is pretty common in PHP code. Many frameworks and libraries use it to provide a way to extend and customize their standard components.

Abstract Factory in Other Languages

Design Patterns: Abstract Factory in Java Design Patterns: Abstract Factory in C# Design Patterns: Abstract Factory in Python Design Patterns: Abstract Factory in Ruby Design Patterns: Abstract Factory in Swift Design Patterns: Abstract Factory in TypeScript