1. 程式人生 > >讀《深入 PHP 面向物件、模式與實踐》2,單例模式

讀《深入 PHP 面向物件、模式與實踐》2,單例模式

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” );