PHP设计模式之适配器模式

        适配器模式是将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作。

        适配器模式的使用场景:一般为了兼容历史代码在原有的基础类下进行扩展,通过使用(继承+实现) 和 组合继承 的方式来实现兼容性。

        适配器模式分为两种:类适配器 和 对象适配器

        类适配器:使用(继承+实现)的方式

// 目标类
interface Target{
   function AdapteeRequest() : void;
   function Request() : void;
}
//适配器类
class Adapter extends  Adaptee implements Target{
   
   function Request() : void {
   
   }
}
//原接口类
class Adaptee {
   function AdapteeRequest() : void{
   
   }
}

$adapter = new Adapter();
$adapter->Request();
$adapter->AdapteeRequest();

        对象适配器:使用的是组合继承方式

// 目标类
interface Target{
   function Request() : void;
}
//适配器类
class Adapter implements Target{
   private $adaptee;
   
   function __construct($adaptee){
      $this->adaptee = $adaptee;
   }
   function Request() : void {
      $this->adaptee->AdapteeRequest();
   }
}
//原接口类
class Adaptee {
   function AdapteeRequest() : void{
   
   }
}

$adaptee = new Adaptee();
$adapter = new Adapter($adaptee);
$adapter->Request();

通过以上代码可以看出:使用类适配器模式是通过继承+接口的方式实现了PHP的多继承,对象适配器则是通过将对象传参和继承的组合形式实现的。目前更推荐使用对象适配器的方式,可以不用修改目标类以及原接口类,这样扩展性更好

你可能感兴趣的:(php,设计模式,适配器模式,服务器)