适配器模式

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许接口不兼容的对象之间进行合作。

在 PHP 中,适配器模式可以通过以下步骤来实现:

1、创建一个目标接口(Target),定义客户端代码可以使用的方法。

interface Target
{
    public function request(): string;
}

2、创建一个适配器类(Adapter),实现目标接口,并在构造函数中接受一个需要适配的对象。

class Adapter implements Target
{
    private $adaptee;
    public function __construct(Adaptee $adaptee)
    {
        $this->adaptee = $adaptee;
    }
    public function request(): string
    {
        return "Adapter: (TRANSLATED) " . $this->adaptee->specificRequest();
    }
}

3、创建一个需要适配的类(Adaptee),它包含一些客户端代码不兼容的方法。

class Adaptee
{
    public function specificRequest(): string
    {
        return ".eetpadA eht fo roivaheb laicepS";
    }
}

4、在客户端代码中,可以使用适配器类来调用需要适配的类的方法。

function clientCode(Target $target)
{
    echo $target->request();
}
$adaptee = new Adaptee();
echo "Client: The Adaptee class has a weird interface. See, I don't understand it:\n";
echo "Adaptee: " . $adaptee->specificRequest() . "\n\n";
echo "Client: But I can work with it via the Adapter:\n";
$adapter = new Adapter($adaptee);
clientCode($adapter);

输出:

Client: The Adaptee class has a weird interface. See, I don't understand it:
Adaptee: .eetpadA eht fo roivaheb laicepS
Client: But I can work with it via the Adapter:
Adapter: (TRANSLATED) Special behavior of the Adaptee.

以上就是适配器模式在 PHP 中的实现方式。

评论

0 条评论