PHP工厂模式

什么是工厂模式?

提到工厂,我们肯定首先想到的就是生产东西的地方,之所以叫做工厂模式也正是如此,工厂模式就是根据工厂类来调用自身静态方法来生产不同对象实例。

工厂模式的应用场景还是挺多的,比如我们使用的各个框架(ThinkPHP,Laravel),为什么我们定了各个控制器和方法后通过在浏览器通过输入特定规则的url(www.xxx.com/模块/控制器/方法)就能调用对应的方法?实际上我们并没有自己去写创建实例的代码(new 控制器()),都是由框架里的工厂方法根据url参数来创建对应控制器的实例。

实例代码:

class Mysql {}
class Oracle{}
class MariaDB{}
//工厂类
class Factory {

    public static function instance($className) {
        return new $className();
    }
}
//我们可以把$className就想象成浏览器传来的控制器名称,
//然后通过工厂类就可以生产对应的实例,接着调用实例方法
$className = 'Mysql';
$ins  = Factory::instance($className);
$className = 'MariaDB';
$ins2 = Factory::instance($className);
posted @ 2019-01-09 16:45 itbsl 阅读(...) 评论(...) 编辑 收藏