Provides a wrapper over objects to apply same method which yields different results based on whether the object invoked is granular or composite.
Change of interface does not happen.
Adapter Design pattern
Mainly involved in converting interfaces as per the requirement of client
Allows use of new libraries without changing existing methods
Change of interface happens in this case