Purpose: Adapters are used to enable objects with different interfaces
to communicate with each other which convert the interface of a class
into another interface clients expect thus let classes work together
without imcompatible interfaces problem.
Object Adapter:
-- use compositional technique
--
by composing interface B's instance within interface A (target
interface, adapter) and implement interface A in terms of B's
interface(adaptee). Interface A is Object Adapter which enables the
client (the class or object to use Interface A) and the
adaptee(Interface B) to be completely decoupled from each other.
Class Adapter:
-- use multiple inheritance
--
Notice that Java is not supporting true multiple inheritance, there
must be one inheritance is from Java Interface(implementation) not Java
class. So take above Object Adapter as example, if client want to
access Interface B, the adpater Interface A will inherit from
class(Class Adapter) which Client can access, and inherit the
implementation of Interface B(Adaptee). So Interface A can have a
funtion to call functions in Interface B, and so that Interface will
not have an object of Interface B, that is the difference from Object
Adapter method.
reference:
http://www.exciton.cs.rice.edu/JavaResources/DesignPatterns/adapter.htm