这种模式允许使用不同的接口重构某个类,可以允许使用不同的调用方式进行调用:

 

<?php
/**
 * 第一种方式:对象适配器
 */
interface Target {
    public function sampleMethod1();
    public function sampleMethod2();
}

class Adaptee {
    public function sampleMethod1() {
        echo '++++++++';
    }
}

class Adapter implements Target {
    private $_adaptee;

    public function __construct(Adaptee $adaptee) {
        $this->_adaptee = $adaptee;
    }

    public function sampleMethod1() {
        $this->_adaptee->sampleMethod1(); 
    }

    public function sampleMethod2() {
        echo '————————'; 
    }
}
$adapter = new Adapter(new Adaptee());
$adapter->sampleMethod1();//输出:++++++++
$adapter->sampleMethod2();//输出:————————



/**
 * 第二种方式:类适配器
 */
interface Target2 {
    public function sampleMethod1();
    public function sampleMethod2();
}

class Adaptee2 { // 源角色
    public function sampleMethod1() {echo '++++++++';}
}

class Adapter2 extends Adaptee2 implements Target2 { // 适配后角色
    public function sampleMethod2() {echo '————————';} 
}

$adapter = new Adapter2();
$adapter->sampleMethod1();//输出:++++++++
$adapter->sampleMethod2();//输出:————————
?>

 

相关文章:

  • 2021-07-16
  • 2021-09-11
  • 2021-12-13
  • 2022-02-11
  • 2021-12-03
  • 2021-07-13
  • 2021-09-10
猜你喜欢
  • 2021-11-14
  • 2021-11-16
  • 2021-09-21
  • 2022-01-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案