2013-05-03 74 views
0

我想弄清楚是否有解决以下问题:对象创建变量构造值

可以说我有一个名为OpenFiles的类。构造函数需要一个路径来指定要打开的文件以及OpenFiles所需的对象。

class OpenFiles 
{ 
    public function __construct(Object $object,$filePath) 
    { 
     //code  
    } 
} 

$对象总是相同的,可以在某种容器中找到。但是每次需要这个类时,filePath都是不同的。

我的问题是当这个类更改时,我需要遍历所有的代码并进行相应的编辑。

有没有这样的模式或解决方案?或者这是不可避免的?

在此先感谢!

+0

为什么你需要你的$ Object参数..请elaboratye – Mortalus 2013-05-03 12:06:25

+0

可能是配置或权限对象。 – John 2013-05-03 13:07:57

回答

0

我会建议使用你的对象的接口,并使用接口作为你的函数的输入参数。

interface iPermissionCollection 
{ 
    public function getPermission($name); 
} 

然后改变类,使用接口,而不是对象。

class OpenFiles 
{ 
    public function __construct(iPermissionCollection $object,$filePath) 
    { 
     //code  
    } 
} 

如果您想在稍后发送不同的类,请确保它将执行iPermissionCollection

所以问题不在于如何处理代码重构,如果我chage我多次使用的类构造函数,但问题是我将如何编写这样一个类,它完全使用它,然后我可以缩放。