文档章节

PHP设计模式之适配器模式

别人说我名字很长
 别人说我名字很长
发布于 2016/02/12 14:55
字数 255
阅读 5
收藏 0
<?php

namespace Tools;

/*
适配器模式
将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作
*/

interface IDatabase{
	function connect($host,$user,$password,$dbname);
	function query($sql);
	function close();
}

//mysql
class MYSQL implements  IDatabase{
	protected $conn;

	function connect($host,$user,$password,$dbname){
		$conn = mysql_connect($host,$user,$password);
		mysql_select_db($dbname,$conn);
		$this->conn = $conn;
	}

	function query($sql){
		$res = mysql_query($sql,$this->conn);
		return $res;
	}

	function close(){
		mysql_close($this->conn);
	}
}

//mysqli
class MYSQLI implements IDatabase{
	protected $conn;

	function connect($host,$user,$password,$dbname){
		$conn = mysqli_connect($host,$user,$password,$dbname);
		$this->conn = $conn;
	}

	function query($sql){
		$res = mysqli_query($this->conn,$sql);
		return $res;
	}

	function close(){
		mysqli_close($this->conn);
	}
}

//pdo
class PDO implements  IDatabase{
	protected $conn;

	function connect($host,$user,$password,$dbname){
		$conn = new \PDO("mysql:host=$host;dbname=$dbname",$user,$password);
		$this->conn = $conn;
	}

	function query($sql){
		return $this->conn->query($sql);
	}

	function close(){
		unset($this->conn);
	}
}

//适配器模式
$db = new \Tools\MYSQL();
$db->connect("localhost","root","","test");
$db->query("show tables");
print_r($db);
$db->close();

$db = new \Tools\MYSQLI();
$db->connect("localhost","root","","test");
$db->query("show tables");
print_r($db);
$db->close();

$db = new \Tools\PDO();
$db->connect("localhost","root","","test");
$db->query("show tables");
print_r($db);
$db->close();



© 著作权归作者所有

共有 人打赏支持
别人说我名字很长
粉丝 55
博文 255
码字总数 105359
作品 0
济南
程序员
私信 提问
《PHP设计模式大全》系列分享专栏

《PHP设计模式大全》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201739.html 文章 php设计模式介绍之编程惯用法第1/3页 php设计模式介绍之值对象模式第1/5页...

kaixin_code
11/06
0
0
PHP设计模式(一):简介及创建型模式

我们分三篇文章来总结一下设计模式在PHP中的应用,这是第一篇创建型模式。 一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使用、容易被他人理解的、可靠的代码设...

juhenj
2014/05/15
228
2
【设计模式笔记】(十六)- 代理模式

一、简述 代理模式(Proxy Pattern),为其他对象提供一个代理,并由代理对象控制原有对象的引用;也称为委托模式。 其实代理模式无论是在日常开发还是设计模式中,基本随处可见,中介者模式中...

MrTrying
06/24
0
0
设计模式已经陨落了?

你现在是坐在一个程序员旁边吗?如果是的话,那么在你读下面的段落之前,有一个简单的实验。让他们到一边去,问问他们两个问题并记录下答案。首先问他们“什么是设计模式?”然后再问“说出你...

oschina
2014/03/11
9.1K
69
设计模式梳理(一)

设计模式梳理(一) 总体来说设计模式分为三大类: @案例源码地址:https://gitlab.com/lxqxsyu/DisgnPattern 创建型模式 简单工厂模式 工厂类是整个模式的关键。它包含必要的判断逻辑,能够...

lxq_xsyu
2017/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在PC上测试移动端网站和模拟手机浏览器的5大方法

总结很全面,保存下来以备不时之需。原文地址:https://www.cnblogs.com/coolfeng/p/4708942.html

kitty1116
25分钟前
1
0
分布式Session共享解决方案

分布式Session一致性? 说白了就是服务器集群Session共享的问题 Session的作用? Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息。 客户端在第一次访...

Java干货分享
31分钟前
4
0
开源软件和开源模式面临的生存危机

导读 开源模式可能正面临一场危机。越来越多的开源软件和平台被大型云计算服务商融入自家的云服务体系,并以此获利颇丰,但并不支付费用,也没有对开源社区做出相应的回馈。而实际上,大部分...

问题终结者
33分钟前
3
0
让看不见的AI算法,助你拿下看得见的广阔市场

人工智能技术的飞速发展给各行各业都带来了深远的影响,AI已被视为企业提升运营效能、应对市场竞争的必经之路。然而对于一些企业而言,让AI真正实现落地和应用,并且创造价值,仍是一件需要努...

个推
38分钟前
2
0
用SAN还是NAS?我来告诉你

存储区域网络(SAN)是以一种结构连接的存储,通常通过交换机连接,使许多不同的服务器能够轻松访问存储设备。从服务器应用程序和操作系统的角度来看,访问SAN中的数据存储或直接连接的存储之间...

linux-tao
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部