欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【php设计模式】适配器模式

程序员文章站 2022-04-08 14:08:45
适配器模式(对象适配器、类适配器): 将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。 在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合。 角色: Target(目标抽象类) 目标抽象类定义客户所需的接口,可以是一个抽象类或接口,也 ......

  适配器模式(对象适配器、类适配器): 

  将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。

  在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合。
  角色:
  target(目标抽象类)
    目标抽象类定义客户所需的接口,可以是一个抽象类或接口,也可以是具体类。
  adapter(适配器类)
    它可以调用另一个接口,作为一个转换器,对adaptee和target进行适配。它是适配器模式的核心。
  adaptee(适配者类)
    适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类包好了客户希望的业务方法。

对象适配器:

interface target{
    public function methodone();
    public function methodtwo();
}

class adaptee{
    public function methodone(){
        echo "+++++++++\n";
    }
}

class adapter implements target{
    private $adaptee;
    public function __construct(adaptee $adaptee){
        $this->adaptee = $adaptee;
    }

    public function methodone(){
        $this->adaptee->methodone();
    }

    public function methodtwo(){
        echo "------------";
    }
}

$adaptee = new adaptee();
$adapter = new adapter($adaptee);
$adapter->methodone();

 

类适配器:

class adapter2 extends adaptee implements target{
    public function methodtwo(){
        echo "-----------";
    }
}
$adapter2 = new adapter2();
$adapter2->methodone();