Part III. Structural Design Patterns

What we observe as material bodies and forces are nothing but shapes and variations in the structure of space.

Erwin Schrodinger

A living cell requires energy not only for all its functions, but also for the maintenance of its structure.

Albert Szent-Gyorgyi

Most of the dogmatic religions have exhibited a perverse talent for taking the wrong side on the most important concepts in the material universe, from the structure of the solar system to the origin of man.

George G. Simpson

Structural design patterns examine how objects and classes are composed to form larger structures. In class structural design, new structures are created through multiple inheritance. One class inherits from more than a single parent class to create a new structure. More commonly, object structures combine different objects to form new structures. The following seven patterns have been designated as structural by Gamma, Helm, Johnson, and Vlissides:

  • Adapter (class and object)

  • Bridge

  • Composite

  • Decorator

  • Façade

  • Flyweight

  • Proxy

Of these seven, two versions of the Adapter pattern—class and object—and the Decorator pattern are closely examined in Part III. The Adapter is important for bringing together two incompatible systems through an adaptation using either multiple inheritance or through composition. One of the thorny problems to deal with is that PHP does not have multiple inheritance, but as you will see, PHP has a workaround available for doing class category Adapters. Composition, ...

Get Learning PHP Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.