Adapter

Adapter


Intent
  Convert the interface of a class into another interface that clients expect.Adatper let classes work together that couldn't otherwise because of incompatible interfaces.


Applicability
  Use Adapter pattern when
1)you want to use an existing class,and its interface does not match what you need.

Structure
Object Adapter


Class Adapter




Participant
1)Target
  defines the domain-specific interface that Client expects.


2)Client
  collaborates with objects conforming to the Target interface.

3)Adaptee
  defines an existing interface that needs adapting.

4)Adapter
  adapts the interface of adaptee to the Target interface  


Consequences
  Class adapter and Object adapter has different trade-offs.
for class adapter:
1)lets Adapter override some of Adaptee's behavior, since Adapter is a subclass of
Adaptee

2)adapts Adaptee to Target by committing to a concrete Adapter class. As a
consequence, a class adapter won't work when we want to adapt a class and all its
subclasses

3) introduces only one object,and no additional pointer indirection is needed to get to adaptee..

for Object adapter:
1)Let a single adapter work with many adaptees-that is,the adaptee itself and all of its subclasses(if any).The Adapter can also add functionality to all adaptees at once.

2) Makes it harder to override Adaptee behavior.It will require subclassing Adaptee and making Adapter refer to the subclass rather than the Adaptee itself.


Two-way adapter.

Usage
Data transforming.

猜你喜欢

转载自hedajia.iteye.com/blog/1850574