PHP设计模式—适配器模式

Posted 幽篁晓筑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP设计模式—适配器模式相关的知识,希望对你有一定的参考价值。

 

定义:

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

 

结构:

  • Target:目标接口,定义与客户端交互相关的接口,目标可以是具体的或抽象的类,也可以是接口。
  • Adaptee:源接口,需要适配的类。
  • Adapter:适配器,对 Adaptee 的接口与 Target 接口进行适配,通过在内部包装一个 Adaptee对象,把源接口转换成目标接口。
  • Client:客户端代码。

 

代码实例:

类适配器:

/**
 * Target.php(目标接口)
 * Interface Target
 */
interface Target
{
    public function method1();

    public function method2();
}


/**
 * Adaptee.php(源接口)
 * Class Adaptee
 */
class Adaptee
{
    public function method1()
    {
        echo "Adaptee Method1<br/>
";
    }
}


/**
 * Adapter.php(适配器)
 * Class Adapter
 */
class Adapter extends Adaptee implements Target
{
    public function method2()
    {
        // TODO: Implement method2() method.
        echo "Adapter Method2<br/>
";
    }
}


// 客户端调用
$adapter = new Adapter();
$adapter->method1();
$adapter->method2();

 

对象适配器:

/**
 * Target.php(目标接口)
 * Interface Target
 */
interface Target
{
    public function method1();

    public function method2();
}


/**
 * Adaptee.php(源接口)
 * Class Adaptee
 */
class Adaptee
{
    public function method1()
    {
        echo "Adaptee Method1<br/>
";
    }
}


/**
 * Adapter.php(适配器)
 * Class Adapter
 */
class Adapter implements Target
{
    private $adaptee;

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


    public function method1()
    {
        // TODO: Implement method1() method.
        $this->adaptee->method1();
    }


    public function method2()
    {
        // TODO: Implement method2() method.
        echo "Adapter Method2<br/>
";
    }
}


// 客户端调用
$adapter = new Adapter(new Adaptee());
$adapter->method1();
$adapter->method2();

 

以上是关于PHP设计模式—适配器模式的主要内容,如果未能解决你的问题,请参考以下文章

PHP设计模式之适配器模式

php设计模式--工厂模式

PHP设计模式——适配器模式

PHP设计模式之适配器模式

php PHP片段保存模式

PHP设计模式-适配器模式