As reflected in the three object models, the adapter class implements the interface (ExpectedInterface) expected by the client. Upon client invocation, the adapter class delegates the work to the adaptee. Furthermore, clients might have access to the adaptee if the adapter is transparent.