2012-05-04 100 views
1

最佳實踐問題:在另一個類方法中創建新對象有什麼不當嗎?我有一個小例子如下:最佳實踐:類方法中的新對象實例化

public function export() { 

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

    } 
+0

號? – maialithar

+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(); 
    } 

} 
+0

你能舉個例子嗎? – stevenpepe

+0

@stevenpepe編輯舉例。 – MrCode

+0

太好了。謝謝! – stevenpepe

0

在我看來,在構造函數中傳遞Order對象是一種更好的方法。這將使測試更容易。

這一切都取決於問題的大畫面,顯然ID需要傳遞到訂單對象別的地方:爲什麼你認爲這可能是壞

class Something 
{  
    protected $orders; 

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

} 
+0

http://stackoverflow.com/questions/15901861/why-not-instantiate-a-new-object-inside-object-constructor?rq=1 – LDusan