1. 程式人生 > 資訊 >Omdia:2025 年 mini LED 電視出貨量將達到 2500 萬臺

Omdia:2025 年 mini LED 電視出貨量將達到 2500 萬臺

單例模式

先來看一個簡單的單例模式的例子

class Single
{
    static private $instance = null;
    // 禁止物件繼承或者new 這個物件
    private function __construct()
    {

    }
    // 指定一個建立物件的方法,如果物件存在則直接返回
    public static function getInstance()
    {
        if (!self::$instance) {
            self::$instance = new self;
        }

        return self::$instance;
    }
  	// 禁止物件克隆
  	private function __clone()
    {
    }
}

單例模式確保一個類只有一個例項,只能自己的內部實現例項化,當他人再次例項化時返回第一次例項化的物件。

單例模式解決了一個全域性使用的類頻繁地建立與銷燬。

單例模式的使用場景

  1. 連線資料庫

    class MySql
    {
        static private $connect;
    
        private function __construct()
        {
        }
    
        static public function instance()
        {
            if (!self::$connect) {
                self::$connect = mysqli_connect('127.0.0.1', 'root', 'root', 'test', '8889');
            }
    
            return self::$connect;
        }
    
        private function __clone()
        {
            // TODO: Implement __clone() method.
        }
    
    }
    
    $mysql1 = MySql::instance();
    $mysql2 = MySql::instance();
    
    if ($mysql1 === $mysql2) {
        echo '是同一個物件';
    }
    

本文來自部落格園,作者:穎小主,轉載請註明原文連結:https://www.cnblogs.com/yingxiaozhu/p/15223006.html