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/>\n";
    }
}

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

// 客户端调用
$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/>\n";
    }
}

/**
 * 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/>\n";
    }
}

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

相关推荐

  • PHP设计模式之桥接模式

    PHP设计模式之桥接模式 桥接模式,在程序世界中,其实就是组合/聚合的代名词.为什么这么说呢?熟悉面向对象的我们都知道继承的好处,子类可以共享父类的很多属性.功能.但是,继承也会带来一个问题,那就是严 ...

  • PHP设计模式之适配器模式

    PHP设计模式之适配器模式 这个模式一直以来都有一个很经典的例子,那就是插座!没错,当我们从国外买回来电器,或者旅游出差去国外的时候,经常会需要一个电源适配器,因为我国的电压标准是220伏,而其他国家 ...

  • 设计模式(七)——适配器模式(SpringMVC框架分析)

    适配器模式1 现实生活中的适配器例子泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用了. 2 基本介绍1) 适配器模式(Adapter Pattern)将某个类的接口 ...

  • 每天学习一个设计模式(一):结构型之适配器模式

    一.基本概念 适配器模式是将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的的类的兼容性问题. 二.通俗解释 ADAPTER 适配器模式:在朋友聚会上碰到了一个美女Sar ...

  • 通俗易懂系列 | 设计模式(三):适配器模式

    今天看了部特工电影,里面有个桥段,主角在直升机上和反派生死搏斗,而飞机则是无人驾驶的状态,有坠毁的危险.生死存亡,危急时刻主角让团队成员去驾驶,而团队成员很慌张地说:"Hey, man,你开 ...

  • 设计模式-适配器模式

    生活中的例子 如上图所示,生活中适配器无处不在,如电源适配器,读卡器,甚至多转接头读卡器等,都是很常见的例子,它们的目的都是将原本不能一起工作的部件能够在一起工作. 在软件工程领域的适配器也是同样类似 ...

  • 结构型设计模式 -- 适配器模式

    一.小案例分析 1.功能需求: 以电源适配器为例. 一个人去外国旅游,住在外国某宾馆,恰好手机没电(手机是双孔插头),但外国宾馆只有三孔插座,宾馆一般不可能为了旅客,将三孔插座换成双孔插座,此时适配器 ...

  • 设计模式 | 适配器模式(adapter)

    定义: 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.   书中说到Gof的设计模式中,讲了两种类型的适配器模式: 1.类适配 ...

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

    适配器模式也叫做包装模式:就是把内部结构包装(适配)成用户期待的格式,使得可以兼容使用 通过继承方式使用适配器模式 /** * @author maikec * @date 2019/5/9 */pu ...

  • [PHP小课堂]PHP设计模式之适配器模式

    [PHP小课堂]PHP设计模式之适配器模式 关注公众号:[硬核项目经理]获取最新文章 添加微信/QQ好友:[DarkMatterZyCoder/149844827]免费得PHP.项目管理学习资料

  • 设计模式之适配器模式案例详解

    基本介绍 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作. 适配器模式属于结构性模式,主要分为三类:类适配器模式.对象适 ...