PHP 單例模式
阿新 • • 發佈:2018-08-12
目的 作用 new bsp 浪費 ret ons 構造函數 是什麽
一、什麽是單例模式?
某個類是能有一個實例對象,當自動實例化時,向整個系統提供這個實例對象
二、作用是什麽?
使用同一個實例對象,不在new新的,減少系統資源浪費
三、特點是什麽?
final標識的類【禁止繼承】
私有構造函數【防止類外實例化】
私有克隆方法【禁止被克隆】
私有靜態屬性【保存類的實例對象】
公有靜態函數【調用類的接口】
以上行為的目的:防止程序重新實例化【消費新的資源】
四、應用場景
常用的數據庫操作類,每一次使用數據庫褲操作類都要new一個新的對象,對於系統和內存資源浪費是巨大的,並且每new一個都要和數據庫連接,那麽數據庫的連接數很快會用完
五、示例
<?php final class single{ private $rand = 0; // 存放實例化的對象 static private $obj = null; // 防止類外實例化 private function __construct(){ return $this->rand = mt_rand(1,99999); } // 調用類的接口 static public function usb(){ if(!self::$obj){ self::$obj = new single(); } return self::$obj; } public function fff(){ echo $this->rand; } // 防止用戶克隆 private function __clone(){ echo ‘禁止克隆!‘; } } $single1 = single::usb(); $single2 = single::usb(); print_r($single1); print_r($single2); $single2->fff();
PHP 單例模式