0
我在PHP中編程,但這是一個通用的面向對象問題。在對象中使用單引號或作爲參考傳遞
我們覺得從對象內部調用singleton類與調用外部對象並傳入變量是什麼感覺?
選項之一:
$instance = Singleton::getInstance();
$obj = new ClassName();
$obj->setSingleton($instance);
選項二:
class ClassName
{
public function __construct(){
$instance = Singleton::getInstance();
$instance->doSomething();
}
}
這只是一個 「每次使用」 的決定(即單實現接口等)還是有規則嗎?
我可以看到傳遞對象VS單身人士,但一個關於單身人士實例VS調用?認爲典型的代碼有很多類和單身實例的許多用途...有沒有任何規則呢?
我一般都不是單身人士的粉絲,但是如果你在物體內部得到了物體,那麼這個物體會與單身人士緊密相連。如果代碼中發生這種情況,那麼問題就會惡化。但是,將實例傳遞給每個需要它的對象也可能同樣糟糕! – chatton
@chatton似乎任何方法都有缺點,但單身人士是一種非常常見的設計模式。你可以在這種情況下看到爲什麼我很好奇 – user3168961
是的,我認爲@AlexG在他的回答中提出了一個很好的觀點,即對於閱讀它的代碼不那麼明顯。如果我選擇一個,我會去傳遞引用,而不是在方法內部調用getInstance()。 – chatton