PHP设计模式之适配器模式代码实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-26 15:05:34 浏览: 评论:0
这篇文章主要介绍了PHP设计模式之适配器模式代码实例,本文讲解了目标、角色、应用场景、优势等内容,并给出代码实例,需要的朋友可以参考下。
目标:可将一个类的接口转换成客户希望的另外一个接口,使得原本不兼容的接口能够一起工作。通俗的理解就是将不同接口适配成统一的API接口。
角色:
Target适配目标,该角色定义把其他类转换为何种接口,也就是我们的期望接口。
Adaptee被适配者,就是需要被适配的接口。
Adapter适配器,其他的两个角色都是已经存在的角色,而适配器角色是需要新建立的,它用来对Adaptee与Target接口进行适配。
应用场景:
如数据操作有mysql、mysqli、pdo、sqlite、postgresql等,假若生成环境需要更换数据库时,可利用适配器模式统一接口。同理cache的场景也是,这会是更换缓存策略(memcache、redis、apc)更方便。
优势:
被适配者通过适配器完成对适配目标的适配,以达到对客户使用透明的目的。
示例代码:
- //适配目标,规定的接口将被适配对象实现
- interface IDatabase
- {
- public function connect($host, $username, $password, $database);
- public function query($sql);
- }
- //适配器
- class Mysql implements IDatabase
- {
- protected $connect;
- public function connect($host, $username, $password, $database)
- {
- $connect = mysql_connect($host, $username, $password);
- mysql_select_db($database, $connect);
- $this->connect = $connect;
- //...
- }
- public function query($sql)
- {
- //...
- }
- }
- //适配器
- class Postgresql implements IDatabase
- {
- protected $connect;
- public function connect($host, $username, $password, $database)
- {
- $this->connect = pg_connect("host=$host dbname=$database user=$username password=$password");
- //...
- }
- public function query($sql)
- {
- //...
- }
- }
- //客户端使用
- $client = new Postgresql();
- $client->query($sql);
如上:
Target适配目标: IDataBase接口
Adaptee被适配者: mysql和postgresql的数据库操作函数
Adapter适配器 :mysql类和postgresql类
Tags: PHP设计模式 PHP适配器模式
- 上一篇:PHP设计模式之装饰者模式代码实例
- 下一篇:PHP中的类型约束介绍
相关文章
- ·PHP设计模式-单例模式学习笔记(2015-12-10)
- ·php设计模式之单例模式实例分析(2021-05-14)
- ·PHP设计模式之装饰者模式代码实例(2021-05-26)
- ·PHP 设计模式系列之 specification规格模式(2021-07-05)
- ·PHP设计模式之注册树模式分析(2021-09-01)
- ·PHP设计模式之装饰器模式实例详解(2021-09-03)
- ·PHP设计模式之PHP迭代器模式讲解(2021-11-13)
- ·PHP设计模式之简单工厂和工厂模式实例分析(2021-11-14)
- ·PHP设计模式之抽象工厂模式实例分析(2021-11-14)
- ·PHP设计模式之单例模式定义与用法分析(2021-11-14)
- ·PHP设计模式之策略模式原理与用法实例分析(2021-11-15)
- ·php设计模式之单例模式用法经典示例分析(2021-12-19)
- ·php设计模式之适配器模式原理、用法及注意事项详解(2021-12-22)
- ·浅析php适配器模式(Adapter)(2021-04-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)