2

这有区别吗

$dependency1 = array();
$dependency2 = new SomeObject;

$di = new OtherObject($dependency1, $dependency2);

和这个?

$di = new OtherObject(array(), new SomeObject);

在第一个示例中,$dependency 变量被暴露在全局范围内,这很明显。但是第二个例子呢?它会创建封装吗?

传递给公共方法的参数也一样吗?

我会测试它,但我不知道如何去做......

4

2 回答 2

1

在第二种情况下,您不会看到这两个参数,除非您知道,OtherObject构造函数将它们分配给一些公共属性。

于 2013-06-01T00:53:31.127 回答
0

第一种方法在全局空间中留下两个对参数的引用。就是这样。如果有其他组件需要注入相同的共享依赖项,请使用第一种方法。

于 2013-06-01T00:58:13.663 回答