: Deal with object composition, helping you ensure that if one part of a system changes, the entire system doesn't need to.
: Defines an interface for creating an object but lets subclasses decide which class to instantiate. Mastering PHP Design Patterns
: Allows objects to be notified of state changes in other objects, common in event-driven systems. : Deal with object composition, helping you ensure
: Focus on object creation mechanisms to decouple your system from how its objects are created and represented. : Deal with object composition
: Allows incompatible interfaces to work together by acting as a bridge.
Beyond object-level patterns, PHP developers frequently use architectural patterns to structure entire applications.