这种模式允许使用不同的接口重构某个类,可以允许使用不同的调用方式进行调用:
<?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();//输出:————————?>
PHP设计模式 - 适配器模式
原文地址:https://www.cnblogs.com/taozi32/p/9226510.html