官方定义
Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces
将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
角色
目标接口(Target)
客户端期望使用的接口,定义了客户端需要的方法。
适配者(Adaptee)
已经存在的、需要被适配的类或接口,它的方法与目标接口不兼容。
适配器(Adapter)
实现目标接口,并内部包装或继承适配者(一般是包含),将目标接口的调用转换为对适配者方法的调用,从而让客户端可以通过目标接口使用适配者的功能。
客户端(Client)(有时单独列出)
通过目标接口与适配器交互的调用者,它并不知道适配者的存在。
所以,如果只谈模式结构中的参与类/接口,一般回答 3 个;若包含调用方则为 4 个。
RecyclerView类比适配器模式
Client : RecyclerView
Target : Adapter<VH extends ViewHolder>
Adaptee: 可以粗略的认为是data
Adapter:myAdapter实现了Target并直接或间接的可以获取 Adaptee