为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

2 回答

不是呀,安装 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();


0 回复 有任何疑惑可以回复我~
#1

frgo_03360772 提问者

谢谢~
2016-08-08 回复 有任何疑惑可以回复我~

厉害了 我的哥

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信