适配模式

定义:可以将截然不同的函数接口封装成统一的API

实际应用举例:1.PHP的数据库有mysql,mysqli,pdo3种,可以用适配器模式统一成一致

2.cache适配器,将memcache,redis,file,apc等不同的缓存函数,统一成一致

以实际应用举例1作为示例



$db = new IMooc\Database\MySQL();//$db = new IMooc\Database\MySQLi();//$db = new IMooc\Database\PDO();$db->connect(‘127.0.0.1‘, ‘root‘, ‘root‘, ‘test‘);$db->query("show databases");$db->close();

<?phpnamespace IMooc;

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

<?phpnamespace IMooc\Database;

use IMooc\IDatabase;

class MySQL implements IDatabase{    protected $conn;    function connect($host, $user, $passwd, $dbname)    {        $conn = mysql_connect($host, $user, $passwd);        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);    }}

<?phpnamespace IMooc\Database;

use IMooc\IDatabase;

class MySQLi implements IDatabase{    protected $conn;

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

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

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

<?phpnamespace IMooc\Database;

use IMooc\IDatabase;

class PDO implements IDatabase{    protected $conn;    function connect($host, $user, $passwd, $dbname)    {        $conn = new \PDO("mysql:host=$host;dbname=$dbname", $user, $passwd);        $this->conn = $conn;    }

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

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


来自为知笔记(Wiz)

时间: 2024-12-13 21:14:41

适配模式的相关文章

设计模式之适配模式

转自:http://www.cnblogs.com/java-my-life/archive/2012/04/13/2442795.html 适配器模式是把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极.阴极外,还有一个地极.而有些地方的电源插座却只有两极,没有地极.电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用.这时候一个三相到两相的转换器(适配器

缺省适配模式

缺省适配模式是为一个接口提供缺省实现,这样子类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展. 在很多情况下,必须让一个具体类实现某一个接口,但是这个类又用不到接口所规定的所有的方法.通常的处理方法是,这个具体类要实现的所有的方法,那些有用的方法要实现,那些没用的方法也要有空的.平庸的实现. 例如,一个和尚接口如下所示: public interface 和尚 { public void 吃斋(); public void 念经(); public void 打坐(); public v

设计模式之二 适配模式

适配模式 可能有些人我会说观察模式,这里因为想趁热,第一个模式说了策略模式然后再借用代码说适配模式感觉省心. 适配模式大家应该很熟悉,我们日常生活中就有用到,例如变压器.有一天你需要出差去美国,可是带的是笔记本电脑 悲催的是 上面印着 Make in china .大家知道 中国用的电压是220V而美国用的是110V,所以这会给你出差美国带来麻烦.如果你拥有了一个适配器(变压器),那就很好解决了. 适配模式的理解:将一个类的接口转换成我们想要的接口. 接着第一个模式说,如果现在有一只火鸡,它只会

Egret的屏幕适配模式图示

1 ShowAll 过长时,上边有边框 过短时,左右有边框 2 noScale 不会进行任何缩放 3 noBorder 过长时,裁减左右 过短时,裁减上下 4 fixedWidth 过长时,下方有边框 过短时,裁减下方 5 fixedHeight 过长时,裁减右边 过短时,右边有边框 6 fixedWide 过长时,裁减右边 过短时,裁减下边 7 fixedNarrow 过长时,下边有边框 过短时,右边有边框

适配者模式

适配者模式:在调用的接口已经确定,提供的接口也已经确定,但有写地方不匹配,就需要适配者模式来处理匹配,一般用在后期代码维护 主方法 namespace 适配模式 { class Program { static void Main(string[] args) { ISqlHelper s1 = new Sql(); s1.Add(); s1.Delete(); s1.Update(); s1.Search(); ISqlHelper s2 = new AdapterLucene(); s2.A

[JAVA设计模式]第三部分:结构模式

声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任! 结构模式... 52 适配(Adapter)器模式... 52 类适配器模式结构... 52 对象适配器结构... 53 从Iterator到Enumeration的适配... 54 从Enumeration到Iterator的适配... 54 缺省适配(Default Adapter)器模式... 55 模式结构... 56 与适配器模式区别... 56 J2EE中的缺省适配模式... 5

Java模式(适配器模式)

今天看了下Java中的适配器模式,下面就来小做下总结和谈谈感想,以便日后使用. 首先,先来先讲讲适配器.适配就是由“源”到“目标”的适配,而其中链接两者的关系就是适配器.它负责把“源”过度到“目标”.举个简单的样例,比方有一个“源”是一个对象人,他拥有2种技能各自是说日语和说英语,而某个岗位(目标)须要你同一时候回说日语.英语.和法语,好了,如今我们的任务就是要将人这个“源”适配的这个岗位中,怎样适配呢?显而易见地我们须要为人加入一个说法语的方法,这样才干满足目标的须要. 接着讨论怎样加说法语这

《JAVA与模式》之适配器模式

在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极.阴极外,还有一个地极.而有些地方的电源插座却只有两极,没有地极.电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用.这时候一个三相到两相的转换器(适配器)就能解决此问题,而这正像是本模式所做的事情. 适配器模式

Java模式(适配器模式)【转载】

转载地址: http://blog.csdn.net/elegant_shadow/article/details/5006175 今天看了下Java中的适配器模式,以下就来小做下总结和谈谈感想,以便日后使用. 首先,先来先讲讲适配器.适配就是由“源”到“目标”的适配,而当中链接两者的关系就是适配器.它负责把“源”过度到“目标”.举个简单的例子,比如有一个“源”是一个对象人,他拥有2种技能分别是说日语和说英语,而某个岗位(目标)需要你同时回说日语.英语.和法语,好了,现在我们的任务就是要将人这个