我一直建議不要爲我的數據庫類使用單例模式。我還沒有完全理解它有什麼缺點,無論如何,似乎在這一點上達成了一致,所以我遵循了這個規則。PHP:共享數據庫連接或創建一個新的?
但是,一般在PHP中共享類的實例是壞習慣嗎?在這裏提供的兩個例子中哪一個最好?事實上,我使用第一種方法的單身模式?
//semi-pseudo Code
Class DB extends mysqli{
//
}
Class A {
$db; //Of type Class DB, initialized in the constructor.
//In some method
//Should I do this, so sharing the data base connection?
$b = new DB($db);
// OR
// Should I instantiate a new instance?
$newDb = new DB();
$b = new B ($newDb);
}
Class B {
$db;//Of type Class DB initialized in the constructor.
我有一類DB是數據鹼基延伸..
我有一類與類型DB中的一員。
A類需要創建一個B類的實例,而B類的實例又有一個DB類型的成員。
我使用依賴注入模式,使A應傳遞一個數據庫實例B.
我應該實例化一個新的數據庫實例傳遞到B,或者我可以只傳遞給A的數據庫實例的引用。
+1有關單身人士糟糕的一面的解釋 – Svisstack 2012-02-11 09:56:57
這裏是參數:http://stackoverflow.com/questions/4595964/who-needs-singletons/4596323#4596323 – 2012-02-11 09:58:58
是的,這是主要的參數,但你可以把你的單例實現在一個接口後面,所以你可以嘲笑它 – 2012-02-11 10:01:24