1

这是一个简单的例子:

class Class_A {   
    protected $_property;

    public function method()
    {
        Class_B::method($this);
    }

    public function getProperty()
    {
        return $this->_property;
    }
}

class Class_B {
    public static function method(Class_A $classA)
    {
        $classA->getProperty();
    }
}

$classA = new ClassA();
$classA->method();

是否可以将$this作为参数传递给另一个类的方法?或者这总是紧耦合?我可以使用工厂模式代替静态方法调用来提出另一个类似的示例。

4

2 回答 2

1

它取决于 and 的确切行为Class_AClass_B但一般来说,定义一个由它实现的接口Class_A并为此键入提示可能会更好。(例如)Class_A所需的方法应该出现在您的界面中。然后,如果您想在以后切换到另一个类,它所要做的就是实现相同的接口。Class_BgetProperty()Class_A

于 2011-12-18T21:40:32.760 回答
0

再一次,这取决于相关类的行为,但如果有另一个Class_C例子也使用Class_B's static 方法,您可能需要考虑拥有Class_AClass_Cextend Class_B。更多信息可以在 php对象继承页面上找到。

于 2011-12-18T21:59:40.257 回答