PHP物件導向 單例模式

2021-08-28 12:55:53 字數 1002 閱讀 4885

單例模式(singleton pattern)

單例模式(singleton pattern)是最簡單的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。

這種模式涉及到乙個單一的類,該類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式,可以直接訪問,不需要例項化該類的物件。

在記憶體裡只有乙個例項,減少了記憶體的開銷,尤其是頻繁的建立和銷毀例項(比如管理學院首頁頁面快取)。

避免對資源的多重占用(比如寫檔案操作)。

沒有介面,不能繼承,與單一職責原則衝突,乙個類應該只關心內部邏輯,而不關心外面怎麼樣來例項化。

乙個全域性使用的類頻繁地建立與銷毀。

當您想控制例項數目,節省系統資源的時候。

要求生產唯一序列號。

資料庫連線

class singleobj  

return self::$instance;

} }

<?php

//單例模式,列印結果物件id是一致的

class a

public static function test()

return self::$obj;

}}$test1 = a::test();

$test2 = a::test();

$test3 = a::test();

$test4 = a::test();

//非單例模式,列印結果存在1-4

class b

$test1 = new b();

$test2 = new b();

$test3 = new b();

$test4 = new b();

var_dump($test1);

var_dump($test2);

var_dump($test3);

var_dump($test4);

需要完整**這裡

Php物件導向 單例模式

php物件導向 單例模式 保證類只有乙個例項 1.如何可以解決乙個類可以被無限地例項化?new,就能例項化一次,怎麼去限制,使用者不能無限次地new?將構造方法私有化。所有外部的new都操作失敗 class mysqldb private function construct 2.一旦構造方法私有化...

物件導向 單例模式

設計模式 解決某一類問題行之有效的解決辦法 思想 單例 singleton 設計模式 學習設計模式必須先弄清楚它是解決什麼問題的。單例是解決什麼問題的呢?可以保證乙個類的物件唯一性。場景 比如多個程式都要使用乙個配置檔案中的資料,而且要實現資料共享和交換。必須要將多個資料封裝到乙個物件中。而且多個程...

PHP 物件導向 設計模式之單例模式

單例模式要解決的問題就是 如何讓這個類只有乙個例項 我們的web應用中,大量使用了資料庫連線,如果反覆建立與資料 庫的連線必然消耗更多的系統資源。我們如何解決這個問題,建立唯一的資料庫連線是必要的方式。我們又如何知道與這個資料庫的連線是否已經建立?還是需要現在 建立?單例模式可以解決這個問題。先假設...