讀《深入 PHP 面向物件、模式與實踐》2,單例模式
阿新 • • 發佈:2018-12-27
1,單例模式,138頁
問題:一個物件應該可以被系統中的任何物件使用。
這個物件不應該被儲存在會被覆寫的全域性變數中。
系統中不應超過一個這個物件。生成一個且只生成一個物件例項的特殊類。
實現,139頁
class Preferences { private $props = array(); private static $instance; private function __construct() { } public static function getInstance() { if ( empty( self::$instance ) ) { self::$instance = new Preferences(); } return self::$instance; } public function setProperty( $key, $val ) { $this->props[$key] = $val; } public function getProperty( $key ) { return $this->props[$key]; } }
單例模式的使用:
$pref = Preferences::getInstance();
$pref->setProperty( “name”, “matt” );