我正在创建一个数据库连接类作为超类中的抽象。我在 php 中使用 PDO。我想让它抽象化,以便我可以为 mysql、oracle、postgre 等声明特定的数据库连接子类。
我在抽象超类中有一个连接方法,我也将其声明为抽象。我现在的问题是,我可以让这个连接方法在子类中也是静态的吗?我想知道这样做是否正确。
编辑
//SUPER CLASS
abstract protected function connectToDatabase($hostname, $dbName, $userName, $password="");
// SUB CLASS
public static function connectToDatabase($hostname, $dbName, $userName, $password=""){
$this->setHostName($hostname);
$this->setDbName($dbName);
$this->setUserName($userName);
$this->setPassword($password);
$this->setDatabaseType(DATABASE_TYPE);
$dsn = $this->getDatabaseType(DATABASE_TYPE) . ":" . parent::getHostConst() . "="
. $this->getHostName() . ";" . parent::getDbNameConst() . "=" . $this->getDbName();
$pdo = new PDO($dsn, $username, $passwd);
$this->setPdoConnection($pdo);
}