将对象实例化为方法/函数调用中的参数是不好的做法吗?

时间:2014-08-11 20:19:09

标签: php oop

将对象实例化为参数是不好的做法吗?例如,这样做是不好的做法吗?

myFunction(new Foo);

或者你总是这样做:

$foo = new Foo;
myFunction($foo);

我的具体情景..

我问,因为我需要将许多新对象传递给方法以注册"一堆插件。它有点像这样:

$imagePlugin = new ImagePlugin;
$videoPlugin = new VideoPlugin;
$audioPlugin = new AudioPlugin;

$myLibrary->registerPlugins(array(
        $imagePlugin,
        $videoPlugin,
        $audioPlugin
    ));

我想知道根据最佳做法是否可以将其缩短为以下代码:

$myLibrary->registerPlugins(array(
        new ImagePlugin,
        new VideoPlugin,
        new AudioPlugin
    ));

1 个答案:

答案 0 :(得分:2)

如果你在函数调用之外不需要它们,我会说你正确地将它们作为参数直接实例化。