Factory文件必须要与所创建对象的类文件同目录么?

来源:5-3 [php]单例模式

frgo_03360772

2016-08-05 23:47

如果Factory类跟Database,Object类不在一个文件夹,比如不在IMooc目录下,会怎么样? 比如index中引用factory的方式是IMooc/Factory::createDatabase,成功在IMooc下创建Database对象, 现在database类不在IMooc目录下了,怎么解决这个问题呢?是不是在IMooc/Factory::createDatabase外添加一个字符串替换?

写回答 关注

2回答

  • zZ爱吃菜
    2016-08-08 16:48:00
    已采纳

    不是呀,安装 PSR-0 设计模式,命名空间跟实际路径一样,你可以在 Factory 中通过命名空间实例化(new)不在 IMOOC 路径下的 Database 类的对象。

    // 假如 Database 类在 Lib 文件夹下

    Database 文件内容:

    namespace Lib;

    Factory文件内容:

    use Lib\Database;// 这步很重要,这样不在同一路径的 Database 也可以被实例了。
    function createDatabase(){    
        $db = new Database();
    }

    这样依旧可以通过工厂模式实例不在同一目录的数据库类

    $db =     IMOOC\Factory::createDatabase();


    frgo_0...

    谢谢~

    2016-08-08 23:20:33

    共 1 条回复 >

  • summesr
    2017-04-12 18:40:38

    厉害了 我的哥

大话PHP设计模式

帮助PHPer具备使用设计模式解决工程中复杂逻辑的能力

62160 学习 · 230 问题

查看课程

相似问题