sqlite高调设计情势之PHP篇 – 适配器格局

sqlite 1

WEB应用
适配器形式最常见的使用为数据库应用,一个web应用普通可能会使用分歧的数据库驱动程序,比如mysql、mysqli、pdo、sqlite等,而全方位web应用当中不能针对每个数据库驱动,编写各个程序,对于web应用程序来讲,要求的是统一外部落成,而数据库驱动的中间贯彻则不爱惜。

实在换成现实中的另一种说法:当您将顺序完整的写截止时,你的客户突然说:听说pdo比mysql好,要不要pdo吧?客户笑眯眯的望着你,你傻乎乎的看着客户,哎,改吧!
总不见得要具有代码都修改四回呢,那时候适配器方式就派上了用处!

角色
Target适配目标,该角色定义把其它类转换为啥种接口,也就是我们的愿意接口。
Adaptee被适配者,就是内需被适配的接口。
Adapter适配器,其余的多个角色都是曾经存在的角色,而适配器角色是内需新确立的,它用来对Adaptee与Target接口进行适配。

如若再增添其余的数据库驱动程序,只要依据接口标准扩大新的类即可,客户端稍作改动即可!

/*驱动接口*/
interface db_driver {
        function connect();
    function query();
}

/*mysql的数据库实现*/
class db_mysql implements db_driver {

    public function connect() {
        /*具体代码实现*/
    }

    function query($sql) {
                /*具体代码实现*/
    }
}
/*pdo的数据库实现*/
class db_pdo implements db_driver {

    public function connect() {
        /*具体代码实现*/
    }

    function query($sql) {
                /*具体代码实现*/
    }
}
/*定义适配器类*/
class db_adapter {

    private $db;

    function __construct($db_obj) {
        $this->db = $db_obj;
    }

    function connect() {
        $this->db->connect();
    }

    function query($sql) {
        $this->db->query($sql);
    }
}
/*客户端应用*/
$db = new db_adapter(new db_mysql());

定义
将一个类的接口转换成客户愿意的其它一个接口,使用原来不般配的而无法在一齐工作的那么些类可以在一块儿坐班。

网站地图xml地图