最佳实践:类方法中的新对象实例化

时间:2012-05-04 13:06:25

标签: php

最佳实践问题:在另一个类方法中创建新对象有什么不妥之处吗?我在下面有一个小例子:

public function export() {

$orders = new Orders($id);
$all_orders = $orders->get_all_orders();

  }

2 个答案:

答案 0 :(得分:2)

你给出的例子是完全可以接受的。

例如,如果您在所有方法中实例化相同的对象,则可以将对象存储为属性。

示例:Orders对象在构造函数中实例化,并存储为属性。

class Something
{    
    protected $orders;

    public function __construct($id)
    {
        $this->orders = new Orders($id);
    }

    public function export()
    {

        // use $this->orders to access the Orders object
        $all_orders = $this->orders->get_all_orders();
    }

}

答案 1 :(得分:0)

在我看来,在构造函数中传递Order对象将是一种更好的方法。这将使测试更容易。

这完全取决于问题的大局,显然需要将id传递给其他地方的Order对象:

class Something
{    
    protected $orders;

    public function __construct(Order $order)
    {
        $this->orders = $order;
    }

}