- 【设计模式】工厂方法模式
- 【设计模式】抽象工厂模式
- 【设计模式】单例模式
- 【设计模式】策略模式
- 【设计模式】观察者模式
- 【设计模式】装饰模式
- 【设计模式】适配器模式
适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。
适配器可担任两个对象间的封装器,它会接收对于一个对象的调用,并将其转换为另一个对象可识别的格式和接口。
适配器模式在 PHP 代码中很常见。 基于一些遗留代码的系统常常会使用该模式。 在这种情况下, 适配器让遗留代码与现代的类得以相互合作。
应用场景:
(1)当你希望使用某个类,但是其接口与其他代码不兼容时,可以使用适配器类。
(2)如果您需要复用一些类,他们处于同一个继承体系,并且他们又有了额外的一些共同的方法,但是这些共同的方法不是所有在这一继承体系中的子类所具有的共性。
优点:
- 单一职责原则:你可以将接口或数据转换代码从程序主要业务逻辑中分离。
- 开闭原则:只要客户端代码通过客户端接口与适配器进行交互, 你就能在不修改现有客户端代码的情况下在程序中添加新类型的适配器。
缺点:
- 代码整体复杂度增加,因为需要新增一系列接口和类。
Adapter(适配器):最主要的就是这个适配器类,用于适配、扩展功能或接口。
1、应用场景1
当你希望使用某个类,但是其接口与其他代码不兼容时,可以使用适配器类。
例如:有一台电脑显示器本身是VGA的数据线,但现在你手里只有HDMI的数据线,这个时候只有有个适配器(转接头)就可以使用。
(1)LcdInterface类本身相当于电脑显示屏,vga()方法相当于电脑显示屏自带的vga格式的接口
(2)适配器(转接头)
(3)新的数据线类,支持HDMI接口。
(4)调用方式
(5)结果展示

2、应用场景2
如果您需要复用一些类,他们处于同一个继承体系,并且他们又有了额外的一些共同的方法,但是这些共同的方法不是所有都在这一继承体系中的子类所具有的共性。
例如:有一个相同类型的类文件,里面有你要用的方法,但又不全面。这个时候就可以使用适配器继承老的接口类,再去实现没有的方法后去使用。
(1)公共的计算器接口类
(2)公共接口类的具体实现
(3)继承公共接口类后扩展了其他方法的接口类
(4)适配器适配所有方法
(5)适配器调用方式
(6)结果展示

版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/11969.html