序言
工厂模式:使用工厂(类)而不是使用关键字new来进行新的对象的创建,这样做的好处是:如果在大型的应用中非常多的使用了new来创建某一个对象,当这个对象的创建需要修改的话(例如构造函数发生了变化)那么需要修改的地方就非常的多而且容易发生遗漏,而使用了工厂模式来进行类的创建的话,只需要修改工厂类里面对象的创建就可以了。
代码演示
定义目标类
<?php
namespace App\Controller\Home;
class DataBase{
public function echoMessage(){
echo 'DataBase Instance is Created !';
}
}
定义目标类的工厂类以及创建实例的方法
<?php
namespace Src;
use App\Controller\Home\DataBase;
class Factory{
public static function createDataBase(){
return new DataBase();
}
}
调用工厂类创建目标类的实例
<?php
define('BASEDIR',__DIR__);
include BASEDIR.'/Src/Loader.php';
spl_autoload_register('\\Src\\Loader::autoload');
$database=\Src\Factory::createDataBase();
$database->echoMessage();
运行结果
可以看到已经成功创建了目标类的实例!这样以后如果DataBase有改变的话直接在工厂类里面修改,而不用在整个项目中替换了。