设计模式之适配器模式

设计模式之适配器模式

场景:其实最简单的例子是当我们引用一个第三方类库。这个类库随着版本的改变,它提供的API也可能会改变。如果很不幸的是,你的应用里引用的某个API已经发生改变的时候

适配器模式核心思想:把对某些相似的类的操作转化为一个统一的“接口”(这里是比喻的说话)--适配器,或者比喻为一个“界面”,统一或屏蔽了那些类的细节。适配器模式还构造了一种“机制”,使“适配”的类可以很容易的增减,而不用修改与适配器交互的代码,符合“减少代码间耦合”的设计原则。

header('content-type:text/html;charset=utf-8');

interface IAdapter
{
    public function charge();
    public function chargeNew();
}

class Adapter implements IAdapter
{
    private $_adapter;
    public function __construct(ICharge $cObj)
    {
        $this->_adapter = $cObj;
    }

    public function charge()
    {
        $this->_adapter->charging();
    }

    public function chargeNew()
    {
        $this->_adapter->chargingNew();
    }
}

# 充电器接口
interface ICharge
{
    public function charging();
    public function chargingNew();
}

class Apple implements ICharge
{
    public function charging()
    {
        echo 'apple开始充电...';
    }
    public function chargingNew()
    {
        echo 'apple新接口开始充电...';
    }
}

class HuaWei implements ICharge
{
    public function charging()
    {
        echo 'huawei开始充电...';
    }

    public function chargingNew()
    {
        echo 'huawei新接口开始充电...';
    }
}

$phone = new Adapter(new HuaWei());
$phone->charge();




posted @ 2021-09-05 20:19  成文的博客  阅读(36)  评论(0编辑  收藏  举报