PHP-谈谈工厂模式

2019-07-31  本文已影响0人  吴涛涛

1.何为工厂模式?

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。字面理解一下工厂,有人肯定想是生产产品的地方吗,对!工厂模式生产出来的是一个实例对象。通过什么设备生产?通过一个工厂类生产。怎么生产呢?工厂类调用自身静态方法来生产对象实例。

2.工厂模式有一个关键的构造,根据一般原则命名为Factory的静态方法,然而这只是一种原则,虽然工厂方法可以任意命名这个静态还可以接受任意数据的参数,必须返回一个对象。

3.为什么要用工厂模式?

考虑一下,我要连接数据库,在php里面就有好几种方法,mysql扩展,mysqli扩展,PDO扩展。我就是想要一个对象用来以后的操作,具体要哪个,视情况而定。既然你们都是连接数据库的操作,你们就应该拥有相同的功能,连接,查询,断开等等。这就利用工厂模式。
<?php

interface Transport{
    public function connect();

}

class Mysql implements Transport{
    public function connect(){
        echo "使用了mysql";
    }
}

class Mysqli implements Transport{
    public function connect(){
        echo "使用了mysqli";
    }
}

class Pdo implements Transport{
    public function connect(){
        echo "使用了pdo";
    }
}

class transFactory{
    public static function factory($transport)
    {
        
        switch ($transport) {
            case 'mysql':
                return new Mysql();
                break;

            case 'mysqli':
                return new Mysqli();
                break;
            case 'pdo':
                return new Pdo();
                break;
        }
    }
}

$transport=transFactory::factory('mysql');
$transport->connect();
上一篇 下一篇

猜你喜欢

热点阅读