無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Singleton 模式

          Posted on 2009-06-01 21:25 Gavin.lee 閱讀(216) 評論(0)  編輯  收藏 所屬分類: java design pattern

          單態類概念:Singleton 是一種創建性模型,它用來確保在整個軟件系統中,某個類只產生一個實例,并提供一個訪問它的全局訪問點.對一些類來說,保證只有一個實例是很重要的,比如有的時候,數據庫連接或 Socket 連接要受到一定的限制,必須保持同一時間只能有一個連接的存在.再舉個例子,集合中的 set 中不能包含重復的元素,添加到set里的對象必須是唯一的,如果重復的值添加到 set,它只接受一個實例.JDK中正式運用了Singleton模式來實現 set 的這一特性,大家可以查看java.util.Collections里的內部靜態類SingletonSet的原代碼.其實Singleton是最簡單但也是應用最廣泛的模式之一,在 JDK 中隨處可見.

          單態類的特性:
          1、單態類只可有一個實例。
          2、它必須自己創立自己這唯一的一個實例。
          3、它必須給所有其它的類提供自己這一實例。

          餓漢式:
          public class EagerSingleton {
              private static final EagerSingleton instance = new EagerSingleton();
              private EagerSingleton() { }
              public static EagerSingleton getInstance() {
               return instance;
              }
          }

          懶漢式:
          public static LazySingleton getInstance(){
              private static LazySingleton m_instance = null;
              private LazySingleton(){}

              public static synchronized LazySingleton getInstance() {
                  if(instance == null) 
                      instance = new LazySingleton();
               return m_instance;
              }
          }

          其實學了一點java的初學者,寫一個單態類,是絕對沒問題的,但是想用好它,好像就沒那么簡單了,http://www.uml.org.cn/sjms/200903103.asp 這篇文章寫的非常好。先到這里,以后等擺脫菜鳥的稱號了再來仔細想想單態模式。期待中……


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 崇明县| 柳林县| 遂川县| 双江| 泸西县| 中宁县| 凤庆县| 虞城县| 车致| 长乐市| 广南县| 静安区| 醴陵市| 会宁县| 霍邱县| 平南县| 大埔县| 花莲市| 台湾省| 彰化市| 台北县| 比如县| 宜君县| 红河县| 灌阳县| 东平县| 东兰县| 宜黄县| 孝昌县| 乌兰察布市| 天门市| 清水河县| 石家庄市| 游戏| 鲁甸县| 江山市| 军事| 芮城县| 胶南市| 西畴县| 清苑县|