浅析php适配器模式(Adapter)

 更新时间:2014年11月25日 14:49:25   投稿:hebedich  
本文讲解的是php设计模式的结构性模式的概念以及机构性模式的七种类中的适配器模式,需要的朋友可以参考下

前几篇介绍了设计模式的特性并且详细讲解了4种创建型模式,创建型模式是负责如何产生对象实例的,接下来讲讲结构型模式。

一、什么是结构型模式

结构型模式是解析类和对象的内部结构和外部组合,通过优化程序结构解决模块之间的耦合问题。

二、结构型模式的种类

适配器模式
桥接模式
装饰模式
组合模式
外观模式
享元模式
代理模式

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

代码实现

复制代码 代码如下:

//老的代码    
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、Java des加密解密实例

    PHP、Java des加密解密实例

    这篇文章主要介绍了PHP、Java des加密解密实例,des加密是对称加密中在互联网应用的比较多的一种加密方式,本文分别给出了PHP和JAVA版本的实现代码,需要的朋友可以参考下
    2015-04-04
  • Yii安装与使用Excel扩展的方法

    Yii安装与使用Excel扩展的方法

    这篇文章主要介绍了Yii安装与使用Excel扩展的方法,简单分析了Yii中Excel扩展的下载、安装及相关使用技巧,需要的朋友可以参考下
    2016-07-07
  • PHP抽奖算法程序代码分享

    PHP抽奖算法程序代码分享

    这篇文章主要分享了PHP抽奖算法程序设计,抽奖在日常生活中大家都会接触到,用php如何实现抽奖算法,需要了解的朋友可以参考一下
    2015-10-10
  • destoon实现调用热门关键字的方法

    destoon实现调用热门关键字的方法

    这篇文章主要介绍了destoon实现调用热门关键字的方法,对于进行模板开发来说非常有用,需要的朋友可以参考下
    2014-07-07
  • Laravel find in set排序实例

    Laravel find in set排序实例

    今天小编就为大家分享一篇Laravel find in set排序实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • ThinkPHP CURD方法之data方法详解

    ThinkPHP CURD方法之data方法详解

    ThinkPHP CURD方法的data方法用于设置当前要操作的数据对象的值这篇文章主要介绍了data方法的应用,需要的朋友可以参考下
    2014-06-06
  • php post json参数的传递和接收处理方法

    php post json参数的传递和接收处理方法

    今天小编就为大家分享一篇php post json参数的传递和接收处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Smarty变量用法详解

    Smarty变量用法详解

    这篇文章主要介绍了Smarty变量用法,结合实例形式分析了php分配变量与配置文件读取变量的具体使用方法,需要的朋友可以参考下
    2016-05-05
  • PHP获取时间排除周六、周日的两个方法

    PHP获取时间排除周六、周日的两个方法

    这篇文章主要介绍了PHP获取时间排除周六、周日的两个方法,应用在特殊场合,需要的朋友可以参考下
    2014-06-06
  • Yii2使用自带的UploadedFile实现的文件上传

    Yii2使用自带的UploadedFile实现的文件上传

    这篇文章主要介绍了Yii2使用自带的UploadedFile实现的文件上传的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06

最新评论