浅析php适配器模式(Adapter)

2015-01-24信息快讯网

本文讲解的是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设计模式中结构性模式中的适配器模式的全部内容了,小伙伴们是否了解清楚了呢,有问题就给我留言吧

ucenter通信原理分析
php计划任务之ignore_user_abort函数实现方法
CI框架中site_url()和base_url()的区别
WampServer下安装多个版本的PHP、mysql、apache图文教程
PHP PDO fetch 模式各种参数的输出结果一览
PHP和Shell实现检查SAMBA与NFS Server是否存在
phpQuery让php处理html代码像jQuery一样方便
php读取mssql的ntext字段返回值为空的解决方法
PHP中mysqli_affected_rows作用行数返回值分析
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Codeigniter框架实现获取分页数据和总条数的方法
Yii的CDbCriteria查询条件用法实例
Codeigniter购物车类不能添加中文的解决方法
php 伪造ip以及url来路信息方法汇总
浅析php原型模式
浅析php创建者模式
浅析php工厂模式
浅析php单例模式
浅谈php正则表达式中的非贪婪模式匹配的使用
thinkphp使用phpmailer发送邮件的方法
php中convert_uuencode()与convert_uuencode函数用法实例
thinkphp使用literal防止模板标签被解析的方法
php中HTTP_REFERER函数用法实例
php中call_user_func函数使用注意事项
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
PDO预处理语句PDOStatement对象使用总结
PHP图像处理之imagecreate、imagedestroy函数介绍
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
php中filter_input函数用法分析
PHP has encountered a Stack overflow问题解决方法
Codeigniter(CI)框架分页函数及相关知识
php中__destruct与register_shutdown_function执行的先后顺序问题
php适配器模式介绍
©2014-2024 dbsqp.com