🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 5-1 工厂模式 创建1个文件:*D:\wamp\www\demo\oop\framework\Think\Factory.php* ~~~ <?php namespace Think; class Factory { static function createDatabase() { return new Database(); } } ~~~ 定义了一个 `Factory` 类,定义一个方法:`createDatabase()`,然后在入口文件中调用: *D:\wamp\www\demo\oop\framework\index.php* ~~~ <?php // 入口文件 define('BASEDIR', __DIR__); include BASEDIR . '/Think/Loder.php'; spl_autoload_register('\\Think\\Loder::autoload'); // $obj = new Think\Database(); $obj = Think\Factory::createDatabase(); var_dump($obj); ~~~ 使用工厂模式取代了传统的 `new` 的好处是:如果实例化的类名发生了变化,只需要修改工厂方法即可。