在线看片电视剧免费看,精品国产一区二区三区2021,99久久久无码国产精品免费,精品人妻少妇嫩草AV无码专区

    電話(huà)

    0411-39943997

仟億科技
客服中心
  • 電話(huà)
  • 電話(huà)咨詢(xún):0411-39943997
  • 手機
  • 手機咨詢(xún):15840979770
    手機咨詢(xún):13889672791
網(wǎng)絡(luò )營(yíng)銷(xiāo) >更多

淺談php布局中單例模式Singleton

作者:billionnet 發(fā)布于:2012/8/24 11:41:41 點(diǎn)擊量:

單例模式程序代碼:
 
1 2 /**
3 * 單例模式
4 *
5 * 保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪(fǎng)問(wèn)它的全局訪(fǎng)問(wèn)點(diǎn)
6 *
7 */
8 class Singleton
9 {
10      static private $_instance = null;
11
12      private function __construct()
13      {
14      }
15
16      static public function getInstance()
17      {
18          if(is_null(self::$_instance)) {
19              self::$_instance = new Singleton();
20          }
21          return self::$_instance;
22      }
23
24      public function display()
25      {
26          echo "it is a singlton class function";
27      }
28 }
29
30 // $obj = new Singleton(); // 聲明不能成功
31 $obj = Singleton::getInstance();
32 var_dump($obj);
33 $obj->display();
34
35 $obj1 = Singleton::getInstance();
36 var_dump(($obj === $obj1));
 
php布局應用Singleton分析如以上代碼所反映,
單例模式屬于創(chuàng )建型模式,它是設計模式中最簡(jiǎn)單的一種模式,當然它的使用也是無(wú)處不在的。

單例模式保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪(fǎng)問(wèn)它的全局訪(fǎng)問(wèn)點(diǎn)。

當需要控制一個(gè)類(lèi)的實(shí)例數量,且調用者可以從一個(gè)公共的眾所周知的訪(fǎng)問(wèn)點(diǎn)訪(fǎng)問(wèn)時(shí),我們就可以考慮使用單例模式了。

我們用 UML 來(lái)設計單例模式,當然在以后的設計模式的設計部分,我們都將采用 UML 來(lái)描述我們的設計,這樣就更為形象化了。


從 UML 設計圖中我們可以看出,為了讓一個(gè)類(lèi)只有一個(gè)實(shí)例,它必須創(chuàng )建一個(gè)靜態(tài)變量,然后我們用一個(gè)公共靜態(tài)的 Instance() 的方法來(lái)創(chuàng )建它,但是為了避免這個(gè)類(lèi)自身的構造函數可以創(chuàng )建對象,我們將構造函數設置成 protected 或者 private,這樣外部就只能通過(guò) Instance() 的方法來(lái)創(chuàng )建一個(gè)靜態(tài)的 Singleton 類(lèi)??磥?lái)這樣我們達到了我們的目的,接下來(lái)我們看代碼:

view source
print?1 public class Singleton  { 

2     private static Singleton instance; 

3     protected Singleton() 

4     public static Singleton Instance() { 

5         if(instance != null) instance = new Singleton(); 

6         return instance; 

7     } 

8 }

由此看來(lái),實(shí)現單例模式我們可以做下列幾步:

在類(lèi)中創(chuàng )建一個(gè)靜態(tài)變量,變量類(lèi)型為當前類(lèi);
在類(lèi)中創(chuàng )建一個(gè)公共的靜態(tài)方法,讓用戶(hù)可以通過(guò)此方法創(chuàng )建此類(lèi)的靜態(tài)對象;
最后將構造函數設置為 protected 或者 private。

 



分享到:


Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號   google網(wǎng)站地圖   百度網(wǎng)站地圖   網(wǎng)站地圖

公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話(huà):0411-39943997 QQ:2088827823 37482752

法律聲明:未經(jīng)許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明

国产精品亚洲片在线| 在线人成视频播放午夜福利| 免费人妻无码不卡中文字幕系列| 老司机午夜福利试看体验区| 最新精品露脸国产在线| 亚洲欧美第一成人网站7777|