适配器模式的作用是解决两个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作。
在程序开发中有许多这样的场景:当我们试图调用模块或者对象的某个接口时,却发现这个接口的格式并不符合目前的需求。这时候有两种解决办法,第一种是修改原来的接口实现,但如果原来的模块很复杂,或者我们拿到的模块是一段别人编写的经过压缩的代码,修改原接口就显得不太现实了。第二种办法是创建一个适配器,将原接口转换为另一个接口,开发者只需要和适配器打交道。
例子:
当我们向googleMap和baiduMap都发出“显示”请求时,googleMap和baiduMap分别以各自的方式在页面中展现了地图:
1 | const googleMap = { |
这段程序得以顺利运行的关键是googleMap和baiduMap提供了一致的show方法,但第三方的接口方法并不在我们自己的控制范围之内,假如baiduMap提供的显示地图的方法不叫show而叫display呢?baiduMap这个对象来源于第三方,正常情况下我们都不应该去改动它。此时我们可以通过增加baiduMapAdapter来解决问题:
1 | const googleMap = { |