我曾經讀過靜態類非常困難,甚至無法調試。這是真的嗎?爲什麼?我曾經讀過靜態類非常困難,甚至無法調試。這是真的嗎?爲什麼?
如果一個例子會有所幫助,這裏是一個PHP
類我用來訪問數據庫(我不認爲這是一個PHP特定的問題,雖然):
<?php
class DB
{
private static $instance;
private function __construct() { }
public static function getInstance()
{
if(!self::$instance)
{
self::$instance = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';', DB_USER, DB_PASS);
}
return self::$instance;
}
public static function getPreparedStatement($query)
{
$db = self::getInstance();
return $db->prepare($query);
}
public static function query($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
}
public static function getResult($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt;
}
public static function getSingleRow($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt->fetch();
}
public static function getMultipleRows($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt->fetchAll();
}
}
?>
希望你已經準備好參加一場戰爭......對於靜態類/方法有很多仇恨,當你提出單例時它會變得更糟...... – Nix 2010-08-06 13:50:47
沒關係:-)我很好奇這個主題並期待人們提供的答案。 – 2010-08-06 13:51:46