設計模式初探 單例模式

2021-09-14 06:08:54 字數 1658 閱讀 9765

所謂的單例模式就是指的乙個類只提供乙個物件例項,而且所提供的例項只有乙個訪問的入口(方法)。

常見的應用場景:

常見的有五種實現方式:

所謂的餓漢式就是,讓單例物件在類建立時就被載入,像乙個餓漢。

package cn.liu.single;

/** * 餓漢式單例模式

* @author administrator

* */

public class demo01 ;

//3.提供方法獲得屬性

//方法沒有同步,呼叫效率高!

public static demo01 getinstance()

}

餓漢式特點:

它的靜態屬性直接new了乙個物件。這樣類在被載入時就直接new乙個物件,之後可以反覆的獲得。(呼叫效率高)

執行緒安全

package cn.liu.single;

/** * 懶漢式

* @author administrator

* */

public class demo02 ;

//3.提供靜態方法獲得屬性

//方法同步,呼叫效率低!

public static synchronized demo02 getinstance()

return instance;

}}

懶漢式特點:

在用的時候再去new物件,之後物件存在便可直接呼叫(也就是可以延時載入)

執行緒安全

呼叫效率不高

package cn.liu.single;

/** * 雙重檢查鎖實現單例模式

* @author administrator

* */

public class demo03

} instance = sc;

} }

} return instance;

} private demo03()

}

package cn.liu.single;

/** *靜態內部類實現單例模式

*執行緒安全。呼叫高效率高,實現了延遲載入

* @author administrator

* */

public class demo04

//2.私有靜態方法

private demo04() {}

//3.獲得單例物件

public static demo04 getinstance()

}

特點:

new物件使用靜態內部類實現了,不會初始化類時呼叫此靜態類,而是在其方法getinstance呼叫時才new。(延遲載入)

執行緒安全

和餓漢式一樣代用效率高 

package cn.liu.single;

/** * 列舉實現單例模式

* @author administrator

* */

public enum demo05

}

特點:

執行緒安全

呼叫效率高

不能延時載入

可以天然防止反射和反序列化 

初探設計模式 單例模式

單例模式是我們經常使用的一種設計模式,那麼讓我們自己來設計一種單例模式的話,我們該如何設計呢?設計的方式有很多種,我們依次來看一下 首先是第一種 1 2 簡單的方式 在併發執行的時候可能存在多個例項3 4 author cuibin 5 create 2017 08 30 20 386 7publi...

初探Java設計模式 單例模式

單例模式在需要只有乙個例項的場合中使用,比如配置檔案。單例模式分為 餓漢模式 和 懶漢模式。下面是餓漢模式 package com.example.singletone public class singleton 2.建立private static 物件例項 private static sin...

PHP設計模式初探 詳解單例模式

2019獨角獸企業重金招聘python工程師標準 常見的設計模式有 24 種,其實就常規開發來說,了解其中的七八種就足夠了。工廠模式是最常見的,一般初學物件導向首先接觸的就是工廠模式,不多廢話。單例模式 wikipedia 是指類只維持乙個例項化後的物件,特別適合於建立資料庫鏈結。使用單例模式維護資...