适配器方法其实就是在原有接口外再套上一个接口,让用户可以通过新的接口使用老接口的方法
个人理解就是将原接口的实现类依赖注入到新接口的实现类中,然后在新接口实现类的方法中直接调用老接口实现类的方法。
//目标角色
interface Target {
public function simpleMethod1();
public function simpleMethod2();
}
//源角色
class Adaptee {
public function simpleMethod1(){
echo 'Adapter simpleMethod1'."<br>";
}
}
//类适配器角色
class Adapter implements Target {
private $adaptee;
function __construct(Adaptee $adaptee) {
$this->adaptee = $adaptee;
}
//委派调用Adaptee的sampleMethod1方法
public function simpleMethod1(){
echo $this->adaptee->simpleMethod1();
}
public function simpleMethod2(){
echo 'Adapter simpleMethod2'."<br>";
}
}
//客户端
class Client {
public static function main() {
$adaptee = new Adaptee();
// 老接口实现类依赖注入到新接口实现类中
$adapter = new Adapter($adaptee);
$adapter->simpleMethod1();
$adapter->simpleMethod2();
}
}
Client::main();