适配器模式

1.适配器模式,可以将不同的函数接口封装成统一的api

 

2.实际应用举例:php的数据库操作有mysql、mysqli、pdo等,可以用适配器模式统一成一致的适配器调用。

  类似的场景还有cache适配器,将memcached、redis、file、apc等不同的缓存函数

 

3.适配器步骤:一个统一定义函数的接口文件、不同具体实现步骤的多个文件

 

4.代码实例:

  1个统一定义函数的接口文件:/db.php(为了统一化要求是接口,使用抽象类也是可以的

  3个不同具体实现步骤的数据库操作文件:/Database/MySQL.php、/Database/MySQLi.php、/Database/PDO.php

 

 

  接口文件:db.php  代码如下:

  interface db {

    public function connect( $host, $user, $passwd, $dbName, $port = 3306 );

    public function query($sql);

    public function close();

  }

 

 

  具体操作文件MySQL.php,代码如下:(其他的两个文件的方法只是具体实现不同而已)

  class MySQL implements db {

 

    private $_conn;

 

    public function connect( $host, $user, $passwd, $dbName, $port = 3306 ){

        $this->_conn = mysql_connect($host, $user, $passwd);

        mysql_select_db( $dbName, $this->_conn );

 

    }

 

    public function query($sql){

        return mysql_query($sql);

    }

 

    public function close(){

        mysql_close($this->_conn);

        return true;

    }

  } 

 

  ps:通过定义统一的接口,具体实现的类来集成接口,使用统一的调用函数

 

  对于适配器,具体的一个延伸实例,举例thinkphp框架中的数据库操作实现,也是使用了适配器模式,不过该适配器不是接口,而是抽象类,使用抽象类作为适配器的

  好处是能够让具体的类能够重写适配器里面的方法,同时使用了一个中间层类,来根据配置决定使用哪个具体数据库类型

  1.中间层类

  2.数据库抽象类

  3.具体数据库类,该类集成了2中的所有方法,同时也重写了部分方法

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值