PHP设计模式学习笔记三——简单的工厂模式

225 阅读1分钟

序言

工厂模式:使用工厂(类)而不是使用关键字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有改变的话直接在工厂类里面修改,而不用在整个项目中替换了。