工厂模式

工厂模式可以分为:工厂方法模式和抽象工厂模式。

工厂方法模式:

抽象工厂其实是对工厂方法的一种扩充。产品变产品簇。工厂由一个变多个。本质是一样的。

<?php
abstract class Driver {
    abstract public function connect();
}

class MySQL_Driver extends Driver {
    public function connect() {
        echo 'mysql connect!<br>';
    }
}

class DB2_Driver extends Driver {
    public function connect() {
        echo 'db2 connect!<br>';
    }
}

class Oricle_Driver extends Driver {
    public function connect() {
        echo 'oricle connect!<br>';
    }
}

class DriverFactory {
    public static function factory($type) {
        $classname = $type.'_Driver';
        if(class_exists($classname)) {
            return new $classname;
        } else {
            throw new Exception('Driver not found');
        }   
    }   
}

$mysql = DriverFactory::factory('MySQL');
$mysql->connect();
?>

原文地址:https://www.cnblogs.com/jesseZh/p/3051562.html