我有一个“静态”类,它连接到数据库并具有各种功能。目前基地布局如下:PHP - 静态数据库连接类的良好设计模式
class DB {
private static $con;
private function __construct() {};
private static function init() {
if(is_null(self::$con) {
// Initialize database connection
}
}
public static someMethod1() {
self::init();
// Do stuff
}
public static someMethod2() {
self::init();
// Do stuff
}
public static someMethod2() {
self::init();
// Do stuff
}
}
我的目的是要能够轻松地调用这些方法为:DB::someMethod1()
。但是,正如您所看到的,我不得不在每个方法开始时都进行初始化。这是一种很好的编码习惯吗?有更好的设计模式吗?起初我想到了建筑模式,但在我看来这并不适合。
使用原则。你正在尝试的都已经完成了,更好的和更好的开发人员比我更好:) – Aerendir
此代码是否可编译/可运行?你可以在静态方法中调用实例方法吗? Anw,使用这样的静态类/方法可能是反模式。测试其他使用Db类的类是很困难的。 – Kata
@Kata我不好,忘了''静态'关键字那里,而我是“绝缘”的代码。谢谢@Aerendir,将研究它 – Hoobla