PHP设计模式之适配器模式
PHP设计模式之适配器模式
别人说我名字很长 发表于2年前
PHP设计模式之适配器模式
  • 发表于 2年前
  • 阅读 4
  • 收藏 0
  • 点赞 1
  • 评论 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();



共有 人打赏支持
粉丝 53
博文 227
码字总数 83765
×
别人说我名字很长
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: