前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【php设计模式】适配器模式

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

作者头像
码缘
发布2019-05-31 15:40:45
4130
发布2019-05-31 15:40:45
举报
文章被收录于专栏:PHP修行之路PHP修行之路

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

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

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

对象适配器:

代码语言:javascript
复制
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();

类适配器:

代码语言:javascript
复制
class Adapter2 extends Adaptee implements Target{
    public function MethodTwo(){
        echo "-----------";
    }
}
$adapter2 = new Adapter2();
$adapter2->MethodOne();
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档