工厂模式:使用工厂方法或者类生成对象,而不是在代码中直接new。

目的

       使用工厂模式,可以避免当改变某个类的名字或者方法之后,在调用这个类的所有的代码中都修改它的名字或者参数。


单例模式 vs 工厂模式

      单例模式解决如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。


实例代码

1.创建测试类

<?php
class Test{
    public function test(){
        echo '我是工厂模式测试类';
    }
}


2.创建测试工厂类 TestFactory.php


<?php
class TestFactory{
    /*
     * 如果某个类在很多的文件中都new ClassName(),那么万一这个类的名字
     * 发生变更或者参数发生变化,如果不使用工厂模式,就需要修改每一个PHP
     * 代码,使用了工长模式之后,只需要修改工厂类或者方法就可以了。
     */
    static function getInstance(){
        $test = new Test();
        return $test;
    }
}




3.使用测试工厂类


<?php
spl_autoload_register('autoload_test');
function autoload_test($class){
    require __DIR__ . "\\".$class.".php";
}

$test = TestFactory::getInstance();
$test->test();



工厂模式可细分为:简单工厂模式、工厂方法模式、抽象工厂模式、静态工厂方法

具体细节后续完善


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部

忘忧竹林

竹林仙境,岁月无痕;

乐而忘忧,心底无尘。