适配器模式解决不兼容类之间相互一起工作的问题。
举个现实的例子,SD卡大家都知道吧,如果电脑要读取上面的数据,我们不能把卡直接插在USB口上,很显然他们的接口不相容,这时候我们就需要一个读卡器,它提供了兼容电脑的USB口,也提供了SD卡兼容的接口,通过读卡器就能够使它们两者一起很好的工作。这个读卡器称之为适配器(adapter),USB口就是适配者(target),SD卡就是被适配者(adaptee)。
再回到编程上来说,有类A和类B两个不兼容的类,类A有客户(也就是类A的用户)所期望的功能,类B已经实现了类A的一些功能,那么可以创建一个适配器类C,它利用类B现有的功能,又提供符合客户要求的类A功能,最终实现代码的复用。
要了解适配器模式,就要了解三种适配器,分别是类适配器,对象适配器和缺省适配器。
类适配器是通过继承现有类来实现功能复用。
对象适配器则是通过组合现有类的对象实现,简单点说就创建现有类对象,把它加到适配器类中使用。
缺省适配器是个特殊的适配器。主要是对接口提供一个缺省的实现,以后使用可以在缺省实现上进行扩展即可。