国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php設計模式之實現(xiàn)單例模式(singleton)

garfileo / 892人閱讀

摘要:單例模式用于為一個類生成一個唯一的對象。作為對象的創(chuàng)建模式,單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例,這個類稱為單例類。

單例模式(Singleton):用于為一個類生成一個唯一的對象。
最常用的地方是數(shù)據(jù)庫連接。 使用單例模式生成一個對象后,該對象可以被其它眾多對象所使用。

作為對象的創(chuàng)建模式,單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例,這個類稱為單例類。

單例模式(singleton)有三個特點
1、一個類只能有一個實例
2、它必須自行創(chuàng)建這個實例
3、它必須自行向整個系統(tǒng)提供這個實例

代碼示例:

/**
 * 單例類
 * Singleton.class
 */
class Singleton  
{  
   /**
    * 靜態(tài)成品變量 保存全局實例
    */
    private static $_instance = NULL;
    
     /**
      * 私有化默認構造方法,保證外界無法直接實例化
      */
       private function __construct() 
       {
    
       }
       
    /**
      * 靜態(tài)工廠方法,返還此類的唯一實例
      */
     public static function getInstance() {
      if (is_null(self::$_instance)) {
       self::$_instance = new Singleton();
       
       // 或者這樣寫
       // self::$_instance = new self();
      }
     
      return self::$_instance;
     }
     
   /**
    * 防止用戶克隆實例
    */
     public function __clone(){
      die("Clone is not allowed." . E_USER_ERROR);
     }
     
  /**
   * 測試用方法
   */
   public function test()
   {
      echo "Singleton Test OK!";
   }
     
}  

/**
 * 客戶端
 */
class Client {
 
  /**
  * Main program.
  */
 public static function main() {
  $instance = Singleton::getInstance();
  $instance->test();
 }
}
 
Client::main();

測試

include "Singleton.class";
$test_obj = Singleton::getInstance();
$ret = $test_obj->test();

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21807.html

相關文章

  • Java基礎學習——多線程單例設計模式(轉)

    摘要:總之,選擇單例模式就是為了避免不一致狀態(tài),避免政出多頭。二餓漢式單例餓漢式單例類在類初始化時,已經(jīng)自行實例化靜態(tài)工廠方法餓漢式在類創(chuàng)建的同時就已經(jīng)創(chuàng)建好一個靜態(tài)的對象供系統(tǒng)使用,以后不再改變,所以天生是線程安全的。 概念:  Java中單例模式是一種常見的設計模式,單例模式的寫法有好幾種,這里主要介紹兩種:懶漢式單例、餓漢式單例。  單例模式有以下特點:  1、單例類只能有一個實例。 ...

    dendoink 評論0 收藏0
  • 設計模式單例模式

    摘要:這種情況帶來的后果是程序兩次創(chuàng)建了對象,這并不符合我們對單例模式的定義。實現(xiàn)的三個特性自由序列化線程安全保證單例。其次,有且僅有的構造器,防止外部的額外構造,這恰好與單例模式吻合。 單例模式保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。當系統(tǒng)需要某個類只能有一個實例時,就可以采用單例模式。 保證單例模式僅有一個實例的核心思想是構造方法私有化,即不允許外部調(diào)用該類的構造方法。基于...

    xuweijian 評論0 收藏0
  • Java 設計模式單例模式

    摘要:在設計模式一書中,將單例模式稱作單件模式。通過關鍵字,來保證不會同時有兩個線程進入該方法的實例對象改善多線程問題為了符合大多數(shù)程序,很明顯地,我們需要確保單例模式能在多線程的情況下正常工作。 在《Head First 設計模式》一書中,將單例模式稱作單件模式。這里為了適應大環(huán)境,把它稱之為大家更熟悉的單例模式。 一、了解單例模式 1.1 什么是單例模式 單例模式確保一個類只有一個實例,...

    everfight 評論0 收藏0
  • 每天一個設計模式單例模式

    摘要:博主按每天一個設計模式旨在初步領會設計模式的精髓,目前采用靠這吃飯和純粹喜歡兩種語言實現(xiàn)。單例模式用途如果一個類負責連接數(shù)據(jù)庫的線程池日志記錄邏輯等等,此時需要單例模式來保證對象不被重復創(chuàng)建,以達到降低開銷的目的。 博主按:《每天一個設計模式》旨在初步領會設計模式的精髓,目前采用javascript(_靠這吃飯_)和python(_純粹喜歡_)兩種語言實現(xiàn)。誠然,每種設計模式都有多種實...

    yy736044583 評論0 收藏0
  • 每天一個設計模式單例模式

    摘要:博主按每天一個設計模式旨在初步領會設計模式的精髓,目前采用靠這吃飯和純粹喜歡兩種語言實現(xiàn)。單例模式用途如果一個類負責連接數(shù)據(jù)庫的線程池日志記錄邏輯等等,此時需要單例模式來保證對象不被重復創(chuàng)建,以達到降低開銷的目的。 博主按:《每天一個設計模式》旨在初步領會設計模式的精髓,目前采用javascript(_靠這吃飯_)和python(_純粹喜歡_)兩種語言實現(xiàn)。誠然,每種設計模式都有多種實...

    lijy91 評論0 收藏0

發(fā)表評論

0條評論

garfileo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<