美文网首页
PHP-谈谈工厂模式

PHP-谈谈工厂模式

作者: 吴涛涛 | 来源:发表于2019-07-31 09:28 被阅读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();

    相关文章

      网友评论

          本文标题:PHP-谈谈工厂模式

          本文链接:https://www.haomeiwen.com/subject/sigarctx.html