Design Patterns - Adapter Pattern15 Jul 2018
Convert the interface of a class into another interface that the client expect. Adapter lets class work together that could not otherwise because of incompatibility interfaces. ~ Gang of Four
|Intent||Match an existing object beyond your control to particular interface|
|Problem||Unable to use certain classes because of their interface mismatch|
|Solution||The Adapter provides a wrapper with the desired interface|
|Participants and Collaborators||The Adapter adapts the interface of an Adaptee to match that one of the Adapter’s Target, which allows the Client to use the Adaptee as it were a type of Target|
|Consequences||The Adapter pattern allows for preexisting objects to fit into new class structure without being limited by their interface|
|Implementation||Contain the existing class in another class. Have the containing class match the required interface and call the methods of the contained class|
- When you need to use an existing class and it’s interface is not the one you need, use Adapter
- It is implemented by creating a new class with the desired interface and then wrap the original class methods to effectively contain the adapted object.
- An adapter wraps an object to change its interface, a decorator wraps an object to add new behavior and responsibilities and facade wraps a set of objects to simply.