phpにおける単一モードの実現


この文書はhttps://www.xstnet.com/article-43.html
要点
設計モードの1つ、単例モード、その名の通り1つのインスタンスしかなく、単例モードを実現するには以下のいくつかの要点を考慮すべきである.
  • はアクティブインスタンス化できない
  • は、オブジェクトインスタンスを取得する方法
  • を提供する必要がある.
  • はクローンできません
  • いくつかの理由を総合して、 の方法を採用して、1つの単例モードを実現します
    三私一公とは何か
  • プライベートコンストラクタは、外部アクティブインスタンスオブジェクト
  • から保護する.
  • プライベート_cloneメソッド、このオブジェクトのクローンを防止する
  • プライベート静的プロパティ、現在のクラスのインスタンス
  • を格納
  • は、現在のクラスのインスタンス
  • を返す静的メソッドを開示する.
    インプリメンテーション
    上記の林述をまとめると、コードは以下の通りである.
    class SingleDemo {
    	/**
    	 * @var self                  
    	 */
    	private static $instance;
    	
    	
    	/**
    	 *                  
    	 */
    	private function __construct()
    	{
    		
    	}
    	
    	/**
    	 *     __clone      
    	 */
    	private function __clone()
    	{
    	
    	}
    	
    	/**
    	 *        ,           
    	 * @return self
    	 */
    	public static function getInstance()
    	{
    		if (!self::$instance instanceof self) {
    			self::$instance = new self();
    		}
    		
    		return self::$instance;
    	}
    }
    
    getInstanceメソッドを使用してクラスのインスタンスを取得
      $singleDemo = SingleDemo::getInstance();