一种结构型设计模式,它允许将不兼容的对象转换成可兼容的接口。主要目的是解决在不改变现有代码的情况下,使不兼容的接口之间能够正常工作,通过创建一个中间转换的适配器来将一个对象转换成我们所需要的接口。
场景: 当你原来的某个类或接口不想改动,就只想重用现有的代码;或者现有的某个第三方组件功能提供的输入输出格式和你想要的不匹配;还有就是当你想要适配不同平台或服务商。
**主要分为三类:**类的适配器模式、对象的适配器模式、接口的适配器模式。
优点:
- 安全可靠:封装了旧接口,对客户端透明,客户端代码无需修改。
- 提高复用性:可以复用不兼容的类;可以对不同的类无需修改,就可以进行组合。
- 扩展性好:在应用程序开发过程中,可以增加新的适配器和被适配对象。
缺点:
- 过多的适配器会导致系统结构复杂。
- 如果适配器没有实现好,可能会拖慢整个系统的性能。
- 滥用适配器模式会导致系统设计紊乱。