设计模式-适配器
作者:edwin
日期:2019-08-05 15:05:47
所属分类:后端 - php

矛盾的这种模式转换一个类的接口到客户期望的另一个接口适配器使原本不兼容的而不能在一起工作的那些类可以在一起工作

Client(客户端)
This class collaborates( [kə'læbəreit] 合作) with objects conforming to the Target interface.
(这类为目标接口提供对象一致性合作。)

Adapter(适配器)
This class adapts(适应) the interface of Adaptee(被适配者) to the Target interface.
(这类适应被适配者的接口到目标接口。)

Adaptee(被适配者)
This class defines an existing interface that needs adapting.
(这个类定义了一个现有的接口,需要适应。)

Target(目标)
This class defines the domain-specific interface that Client uses.
(这个类定义了特定领域的接口,客户端使用。)

代码实现

<?php

$objCache = new OldCacheAdapter();
$objCache->set("test", 1);
$objCache->get("test");
$objCache->del("test", 1);

class OldCacheAdapter implements Cacheable
{
    private $_cache = null;
    public function __construct()
    {
        $this->_cache = new OldCache();
    }

    public function set($key, $value)
    {
        return $this->_cache->store($key, $value);
    }

    public function get($key)
    {
        return $this->_cache->fetch($key);
    }

    public function del($key)
    {
        return $this->_cache->remove($key);
    }
}

class OldCache
{
    public function __construct()
    {
        echo "OldCache construct";
    }

    public function store($key, $value)
    {
        echo "OldCache store";
    }

    public function remove($key)
    {
        echo "OldCache remove";
    }

    public function fetch($key)
    {
        echo "OldCache fetch";
    }
}

interface Cacheable
{
    public function set($key, $value);
    public function get($key);
    public function del($key);
}

评论

全部评论 / 0