單例:PHP 資料庫存取中的神話
您正在質疑單例用於PHP 資料庫存取的必要性,考慮以下簡化的單例類別:
class Database { private static $db; private function __construct(){} static function get() { if(!isset(self::$db)) self::$db = new PDO(...); return self::$db; } }
你想知道為什麼這還不夠,而不是更多具有singleton()方法的複雜單例類別。
揭穿PHP 中單例的效用
在PHP 中,單例幾乎沒有優點:
單例的缺點
Erich Gamma 的懷疑
甚至是單例的創建者之一模式,Erich Gamma,現在質疑它的實用性:
全域存取點:為同一請求中的實例建立全域存取點可能是合理的,但可能會引入耦合和維護挑戰。
消除第二個實例
:僅在存在時才實現單例迫切需要防止創建額外的實例。[決策圖單例](link_to_Singleton_Decision_Diagram)
以上是PHP 資料庫存取真的需要單例嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!