对象创建变量构造值

时间:2013-05-03 11:45:32

标签: php oop class design-patterns object

我想弄清楚是否有以下问题的解决方案:

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

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

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

我的'问题'是这个课程发生变化时我需要检查所有代码并进行相应编辑。

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

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

如果您想稍后发送其他课程,请确保它将实施iPermissionCollection

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