文档章节

PHP设计模式之适配器模式

别人说我名字很长
 别人说我名字很长
发布于 2016/02/12 14:55
字数 255
阅读 4
收藏 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
博文 254
码字总数 103692
作品 0
济南
程序员
编程中的那些套路——关于策略模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 今天讲讲策略模式,策略模式 和工厂模式十分相像(或者说在代码逻辑层面,他们是一样的)。 但策略模式与...

gzchen
08/27
0
0
编程中的那些经典套路——设计模式汇总

在正式阅读前,我先谈谈我们该用什么姿势和心态学习设计模式: 如果你还没有过多的编程经验(泛指半年以下),我建议你把它当做小说来看,能看懂多少是多少,因为半年以下经验的程序员用到设...

gzchen
08/27
0
0
编程中的那些套路——关于单例模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 在设计模式中,单例模式和工厂模式)可以说是使用的最普遍的设计模式了,所以掌握此种模式尤为重要。 单...

gzchen
08/27
0
0
php各种设计模式简单实践思考

前言 我一直觉得什么框架,版本,甚至语言对于一个coder来说真的不算什么,掌握一个特别高大上的一个框架或者是一个新的,少众的语言真的不算什么,因为你可以,我要花时间也可以,大家都是这...

michaelgbw
2016/06/13
0
0
javascript 设计模式之工厂(Factory)模式

工厂模式介绍 工厂模式是一个创建型的模式,主要就是创建对象。其中工厂模式又分为简单工厂模式和抽象工厂模式。简单工厂模式是通过工厂方法确定创建 对应类型的对象。抽象工厂模式是通过子类...

hlxiong
2014/04/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7安装Nginx

安装所需环境 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum install gcc-c++ 二. PCRE pcre-devel 安装 PCRE(Perl Co...

狼王黄师傅
21分钟前
1
0
dubbo+apollo微服务开发指南

为了大家比较快速的开发微服务,规范dubbo,spring,mybatis,hessian,netty的版本和用法,我写了一个demo,下面对demo的功能做个简单的介绍,如有疑问的地方,可以私下问我。 微服务项目示例 ...

PageYi
23分钟前
1
0
android流式布局、待办事项应用、贝塞尔曲线、MVP+Rxjava+Retrofit、艺术图片应用等源码

Android精选源码 android模仿淘宝首页效果源码 一款艺术图片应用,采用T-MVVM打造 Android MVP + RxJava + Retrofit项目 android流式布局实现热门标签效果 android仿淘宝客户端商品详情页效果...

Android爱开源
26分钟前
2
0
一步一步安装hive

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto d......

hnairdb
29分钟前
2
0
【WebService 系列二 使用JAX-WS开发示例程序】

1、服务端代码 1.1、编写SEI SEI即(Service Endpoint Interface)SEI在ws中称为portType,在java中称为接口 package jaxws.server;/** * @className: HelloService * @description: jax......

HansonReal
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部