1. 程式人生 > >PHP 單例模式

PHP 單例模式

目的 作用 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 單例模式