0

我试图弄清楚是否有解决以下问题的方法:

假设我有一个名为 OpenFiles 的类。构造函数需要打开文件的路径和 OpenFiles 所需的对象。

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

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

我的“问题”是当这个类发生变化时,我需要检查我的所有代码并进行相应的编辑。

对此有模式或解决方案吗?还是这是不可避免的?

提前致谢!

4

1 回答 1

0

我建议为您的对象使用一个接口,并将该接口用作您的函数的输入参数。

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

然后更改类以使用接口而不是对象。

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

如果您想稍后发送不同的类,请确保它会实现iPermissionCollection

所以问题不是如果我更改我多次使用的类构造函数我将如何处理代码重构,而是问题是我将如何编写这样一个完全使用它需要的类然后我可以扩展。

于 2013-05-03T19:37:52.433 回答