我一直建议不要为我的数据库类使用单例模式。我还没有完全理解它有什么缺点,无论如何,似乎在这一点上达成了一致,所以我遵循了这个规则。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