亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1083 | 回復(fù): 0
打印 上一主題 下一主題

Java模式之單例模式 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2007-09-08 09:19 |只看該作者 |倒序瀏覽

java模式之單例模式: 單例模式確保一個類只有一個實例,自行提供這個實例并向整個系統(tǒng)提供這個實例。 特點: 1,一個類只能有一個實例 2,自己創(chuàng)建這個實例 3,整個系統(tǒng)都要使用這個實例
java模式之單例模式:
          單例模式確保一個類只有一個實例,自行提供這個實例并向整個系統(tǒng)提供這個實例。
特點:
       1,一個類只能有一個實例
       2,自己創(chuàng)建這個實例
       3,整個系統(tǒng)都要使用這個實例
例: 在下面的對象圖中,有一個"單例對象",而"客戶甲"、"客戶乙" 和"客戶丙"
是單例對象的三個客戶對象?梢钥吹剑械目蛻魧ο蠊蚕硪粋單例對象。而
且從單例對象到自身的連接線可以看出,單例對象持有對自己的引用。

Singleton模式主要作用是保證在Java應(yīng)用程序中,一個類Class只有一個實例存
在。在很多操作中,比如建立目錄 數(shù)據(jù)庫連接都需要這樣的單線程操作。
一些資源管理器常常設(shè)計成單例模式。
外部資源:譬如每臺計算機(jī)可以有若干個打印機(jī),但只能有一個Printer
Spooler,以避免兩個打印作業(yè)同時輸出到打印機(jī)中。每臺計算機(jī)可以有若干個通
信端口,系統(tǒng)應(yīng)當(dāng)集中管理這些通信端口,以避免一個通信端口被兩個請求同時
調(diào)用。
內(nèi)部資源,譬如,大多數(shù)的軟件都有一個(甚至多個)屬性文件存放系統(tǒng)配置。
這樣的系統(tǒng)應(yīng)當(dāng)由一個對象來管理這些屬性文件。
一個例子:Windows 回收站。
在整個視窗系統(tǒng)中,回收站只能有一個實例,整個系統(tǒng)都使用這個惟一的實例,
而且回收站自行提供自己的實例。因此,回收站是單例模式的應(yīng)用。
兩種形式:
1,餓漢式單例類
public class Singleton {
  private Singleton(){}
  //在自己內(nèi)部定義自己一個實例,是不是很奇怪?
  //注意這是private 只供內(nèi)部調(diào)用
  private static Singleton instance = new Singleton();
  //這里提供了一個供外部訪問本class的靜態(tài)方法,可以直接訪問  
  public static Singleton getInstance() {
    return instance;   
   }
}
2,懶漢式單例類
public class Singleton {
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //這個方法比上面有所改進(jìn),不用每次都進(jìn)行生成對象,只是第一次   
 
  //使用時生成實例,提高了效率!
  if (instance==null)
    instance=new Singleton();
  return instance;   }
}
第二中形式是lazy initialization,也就是說第一次調(diào)用時初始Singleton,以后就不用再生成了。
注意到lazy initialization形式中的synchronized,這個synchronized很重要,如果沒有synchronized,那么使用getInstance()是有可能得到多個Singleton實例。
一般來說第一種比較安全。


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/23224/showart_376910.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP