Chapter 7. The Adapter Pattern
It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.
The measure of intelligence is the ability to change.
Science always has its origin in the adaptation of thought to some definite field of experience.
What Is the Adapter Pattern?
This chapter is a two-for-one package: object and class Adapters. This chapter has many lessons, but one of the most interesting is seeing the difference between using inheritance and using composition. The class scope version of the Adapter design pattern uses inheritance, as can be seen in the class diagram in Figure 7-1.
Figure 7-1. Adapter class diagram using inheritance
In the class diagram, one implementation of the pattern is to have one class with dual inheritance. As you will see, dual inheritance is not allowed in PHP 5, but there are alternatives to dual inheritance where the pattern can be correctly implemented with a combination of inheritance and implementation.
As you know, an important dictum of design patterns is to favor
composition over inheritance. In looking at the second Adapter pattern,
the Adapter
participant uses composition to hold a
reference to the Adaptee
instead of inheritance.
Figure 7-2. Adapter class diagram using composition
Generally, composition is favored over inheritance ...
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.