适配器模式(Adapter)

来源:互联网 发布:杠杆率 知乎 编辑:程序博客网 时间:2024/06/06 05:35

适配器模式在接口不一致的情况下,想取得正常工作非常有效。

例如:

应用程序需要使用google提供的jar包来实现路径规划的功能,但是该应用需要在应用程序代码(客户代码)不变动的情况支持切换baidu的jar包,那么对应客户来说,相同的功能必须保证一致的接口。

但是,google和baidu的jar中,同样的接口,可能名字并不一样,那么就需要进行转换适配, 在客户程序看来统一为一个全新的接口RouteInterface。

1. 类适配器(继承)模式

客户端代码

2. 对象适配器(组合)模式

对象适配器模式的优势在于:上述例子中RouteBaidu是baidu jar包中的类,如果jar包中的其他接口的返回值类型是RouteBaidu,那么此时只能使用对象适配器模式转换成BaiduRoute供客户程序使用。如果使用类适配器模式,将会是父类转换成子类的ClassCastException.