最佳實踐問題:在另一個類方法中創建新對象有什麼不當嗎?我有一個小例子如下:最佳實踐:類方法中的新對象實例化
public function export() {
$orders = new Orders($id);
$all_orders = $orders->get_all_orders();
}
最佳實踐問題:在另一個類方法中創建新對象有什麼不當嗎?我有一個小例子如下:最佳實踐:類方法中的新對象實例化
public function export() {
$orders = new Orders($id);
$all_orders = $orders->get_all_orders();
}
你給的例子是完全可以接受的。
例如,如果您在所有方法中實例化相同的對象,則可以將對象存儲爲屬性。
示例: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();
}
}
在我看來,在構造函數中傳遞Order對象是一種更好的方法。這將使測試更容易。
這一切都取決於問題的大畫面,顯然ID需要傳遞到訂單對象別的地方:爲什麼你認爲這可能是壞
class Something
{
protected $orders;
public function __construct(Order $order)
{
$this->orders = $order;
}
}
http://stackoverflow.com/questions/15901861/why-not-instantiate-a-new-object-inside-object-constructor?rq=1 – LDusan
號? – maialithar
不,您可能會對閱讀面向對象編程基礎知識感興趣。它實際上是一般物體的一個很酷的功能。 –