【适配器模式】
适配器模式,也叫做变压器模式 或者 包装器模式,将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,也可以理解为某种协议,使两个不同的类之间可以通过协议合作来达到某种目的。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。
结构:
- 目标(Target):定义客户想要用还不能直接用的 特定领域的接口(或抽象类),也可以是具体类。(由于php不支持多继承,在类适配器中只能是接口)
- 被适配者(Adaptee):原本已存在的 需要适配的 具体类或接口,一般是一个具体类,包含了客户希望使用的业务方法。
- 适配器(Adapter):适配器是一个类,负责实现目标接口,并包含被适配者的引用,即对被适配者接口(抽象类)与目标接口进行适配。在类适配器模式中,它通过实现Target接口并继承Adaptee类来使两者产生联系;在对象适配器中,它通过继承Target并关联一个Adaptee对象使二者产生联系。
示例:下面以充电器为例,在不同国家电压的标准不同,在国外需要适配:
1、类适配器(继承+实现):
-
原有充电器具体类(被适配者Adaptee)Charge.php:
<?php
namespace app\design06\controller;
//充电器具体类