适配器模式,是一个提高接口复用的模式,他的作用是,把一个原本存在的接口包装成另一番摸样,使得原本因为接口问题不能使用的类可以使用了。在我看来是开闭原则的一种体现吧。
适配器有两种,一种是类适配器,一种是对象适配器。类适配器,就是利用类的继承,去实现适配的作用。对象适配器,是利用组合,就是在适配器类中有被适配的类的实例,通过这个实例来实现适配的作用。这个看看UML图就可以比较详细地了解了。
两者的差别就是一个是通过继承,一个是通过组合,利用实例的方式去进行。本身对于两个方法的应用场景,是比较疑惑的。对象适配器的好处,似乎是在于可以使得一个适配器能够适配很多的待适配类。因为Java是不允许多重继承的,因此要是想通过一个适配器来适配多于一个的待适配类的时候,使用对象适配器似乎是更加合适的选择。不过对象适配器因为是使用一个对象,所以当适配器类被多次实例化,那他们引用的对象是同一个还是不同的对象之类的,会产生一些细节问题。所以对象适配器在实现起来会比较复杂一点。