我有一些代碼,往往是這樣的:PHP OOP訪問方法的好習慣?
private $user;
public function __construct()
{
$this->user = User::getInstance(); //singleton
}
public function methodOne()
{
return $this->user->foo();
}
public function methodTwo()
{
return $this->user->foo2();
}
public function methodThree()
{
return $this->user->foo3();
}
我想如果我設置的用戶屬性爲實例,我可以在我的方法重新使用一個較短的名稱(以及在這種情況下,這並不是說要短得多)。我也認爲這樣做可能會節省一些資源(開始懷疑它),但是當我查看其他人的代碼時,我很少看到人們這樣做。他們通常只會打電話:
User::getInstance()->foo();
User::getInstance()->foo2();
User::getInstance()->foo3();
有沒有這種最佳實踐?也許如果它不是單身課程,你可以這樣做嗎?或者,也許你不應該這樣做?希望得到一些澄清,謝謝。
編輯: 櫃面有什麼誤會,我只是想知道如果我應該創建一個屬性實例存儲VS這個第一個例子:
public function methodOne()
{
return User::getInstance()->foo();
}
public function methodTwo()
{
return User::getInstance()->foo2();
}
public function methodThree()
{
return User::getInstance()->foo3();
}
其實,現在我想想這可能少代碼,我不需要構造...
+1中的「良好的操作規範」,對於很好的解釋 – 2011-03-13 00:35:11
編輯我的文章,我也創建包裝,因爲它與另一個應用程序集成,所以我不必重命名所有我的方法,如果我以後更改應用程序我也不確定我是否能夠使用你展示的方法,因爲我沒有用戶對象呢? – Joker 2011-03-13 01:16:45
@Joker這是一個很好的使用包裝。你的用戶對象在包裝對象出現的時候就開始起作用(因爲它在那裏是爲了操縱第三方用戶對象)。因此,如果您在創建用戶對象之前或之後創建其他用戶對象,則不會產生影響。 – koen 2011-03-13 14:30:02