PHP设计模式之适配器模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP设计模式之适配器模式相关的知识,希望对你有一定的参考价值。

将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本的由于接口不兼容而不能一起工作的那些类可以一起工作。
应用场景:老代码接口不适应新的接口需求,或者代码很多很乱不便于继续修改,或者使用第三方类库。

//老的代码     
class User {    
    private $name;    
    function __construct($name) {    
        $this->name = $name;    
    }    
    public function getName() {    
        return $this->name;    
    }    
}   

 

//新代码,开放平台标准接口    
interface UserInterface {    
    function getUserName();    
}    
class UserInfo implements UserInterface {    
    protected $user;    
    function __construct($user) {    
        $this->user = $user;    
    }    
    public function getUserName() {    
        return $this->user->getName();    
    }    
}   

$olduser = new User(‘张三‘);    
echo $olduser->getName()."n";    
$newuser = new UserInfo($olduser);    
echo $newuser->getUserName()."n";   

注意点:这里的新接口使用了组合方式,UserInfo内部有一个成员变量保存老接口User对象,模块之间是松耦合的,这种结构其实就是组合模式。不要使用继承,虽然UserInfo继承User也能达到同样的目的,但是耦合度高,相互产生影响。

以上是关于PHP设计模式之适配器模式的主要内容,如果未能解决你的问题,请参考以下文章

php设计模式之适配器模式

php设计模式之适配器模式实例代码

PHP设计模式之适配器模式

PHP模式设计之单例模式工厂模式注册树模式适配器模式观察者模式

PHP设计模式之适配器模式

PHP设计模式之适配器模式