GoF23 單例(Singleton)模式

2021-10-11 21:19:56 字數 863 閱讀 7474

目標之一:提高程式的可復用性

有哪些功能可以被擴充套件?

擴充套件功能時必須修改哪些地方?

有哪些類不需要修改?

保證在jvm中只有乙個例項。

需要該物件時,new例項物件。不安全

class

singleton

/** * 當需要時才例項化,之後都是乙個例項。懶漢式不安全,所以需要加上同步。

** @return

*/public

static

singleton

getinstance()

}return singleton;}}

/** * @description:單例模式-懶漢式

* @author: lishun

*/public

class

test

}

天生安全,在類載入時就初始化了乙個例項物件。

spring框架ioc容器中的物件預設就是餓漢式單例。

class

singleton2

public

static

singleton2

getinstance()

}/**

* @description:單例模式-餓漢式

* @author: lishun

*/public

class

test2

}

設計模式是內功,需要一直修煉!

GOF23之單例模式

單例模式是gof23中最簡單的模式。單例的設計模式裡的出場率很高,它簡單但也有多種實現方式,也正是因為它的靈活性和重要性使喚其多次出現在面試筆試中,經常與工廠模式搭配使用。作用 保證乙個類只能有乙個例項。多次建立只會返回同乙個例項。作用範圍 如word中的工具箱,任何時候只能有乙個工具箱。大話設計模...

GOF23 單例模式(1)

核心作用 保證乙個類只有乙個例項,並且提供乙個訪問該例項的全域性訪問點。常見的應用場景 1.windows的task manager 任務管理器 2.windows的recycle bin 站 3.專案中,讀取配置檔案的類,一般也只有乙個物件,沒有必要每次使用配置檔案資料,每次new乙個物件去讀取。...

GOF23設計模式 單例(2)

package org.test.singleton classname singletondemo3 description 雙重檢測鎖實現單例 不考慮 author administrator date 2017年3月30日 public class singletondemo3 public ...