博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP适配器模式
阅读量:6714 次
发布时间:2019-06-25

本文共 563 字,大约阅读时间需要 1 分钟。

  hot3.png

目的:使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

现实场景:港版手机送的插头无法插在内地插座上,这时候我们需要一个适配器,也就是转换头。这个场景里面,适配器的作用就是让原本不兼容的插头、插座能够一起工作。原本插头是直接插在插座上的,后来改为插头插在适配器(转换头)上,这样遇到不同的兼容性问题,我们只需要增加新的适配器就可以了。

以TP框架为例:在TP所使用的驱动模式,其实可以诠释适配器模式,以数据库为例:

Model(手机) 访问数据库是通过 Db类(插头);

Db类不会直接跟数据库(插座)产生交互,而是会根据不同的数据库(插座)类型调用不同的数据库驱动(转换头,也就是适配器);

我们看看有哪些适配器:

可以看到当插座是Mysql数据库的时候,TP将使用Mysql.class.php(适配器),同理当是Mongo数据库的时候使用的是Mongo.class.php。

而这些适配器类,他们必须实现一组相同的方法,因为面向手机那头的孔是不能变的,即Db类的方法是不能变化的,所以一般而言我们会给适配器和Db类都定义一个接口,以统一这组方法,TP没有定义接口,个人看来是不妥当的。

以上是我个人的见解,欢迎指正。

转载于:https://my.oschina.net/cxz001/blog/267669

你可能感兴趣的文章
OpenSSL将于9月22日发布多个漏洞补丁
查看>>
大数据助推新型智库建设
查看>>
新加坡欲重组通信和媒体管制机构
查看>>
《CCNP ROUTE 300-101学习指南》——2.2节构建EIGRP拓扑表
查看>>
Libreboot 项目向开源社区示好和致歉
查看>>
Linux Kernel 4.9-rc8,4.9 分支最后一个候选版
查看>>
《Web异步与实时交互——iframe AJAX WebSocket开发实战》—— 2.2 相关关键技术及工作原理...
查看>>
《Nmap渗透测试指南》—第1章1.5节Mac OS安
查看>>
学习和使用 PHP 应该注意的10件事
查看>>
.NET Framework 源码
查看>>
centos上一键安装jdk、tomcat脚本
查看>>
ArrayList源码分析
查看>>
JS Object的静态方法汇总( 上 )
查看>>
jvm疯狂吞占内存,罪魁祸首是谁?
查看>>
sql server随机函数
查看>>
优朋普乐:OTT正重构电视版图
查看>>
Ubuntu 14.04 LTC 有线网络——网线不识别,灯不亮问题
查看>>
21_css布局2_浮动布局.html
查看>>
DateUtils 单元下的公用函数目录
查看>>
jQuery 练习[二]: 获取对象(1) - 基本选择与层级
查看>>