設計模式之單例模式

2021-06-26 10:24:28 字數 1489 閱讀 8194

單例模式是一種物件建立型模式,使用單例模式,可以保證為乙個類只生成唯一的例項物件。也就是說,在整個程式空間中,該類只存在乙個例項物件。

其實,gof

對單例模式的定義是:保證乙個類、只有乙個例項存在,同時提供能對該例項加以訪問的全域性訪問方法。

在應用系統開發中,我們常常有以下需求:

- 在多個執行緒之間,比如

servlet

環境,共享同乙個資源或者操作同乙個物件 -

在整個程式空間使用全域性變數,共享資源 -

大規模系統中,為了效能的考慮,需要節省物件的建立時間等等。 因為

singleton

模式可以保證為乙個類只生成唯一的例項物件,所以這些情況,

singleton

模式就派上用場了。

單例有幾種表現形式:

1.餓漢式

package org.noah.singleton;

/* * 餓漢式

*/public class person

public void setname(string name)

//私有化構造器

private person() {}

//提供乙個全域性靜態方法

public static person getperson()

}

2.懶漢式

package org.noah.singleton;

/* * 懶漢式,會有併發問題

*/public class person2

public void setname(string name)

private person2() {}

public static person2 getperson()

return person;

}}

3.同步懶漢式

package org.noah.singleton;

/* * 同步的懶漢式,效能較低

*/public class person3

public void setname(string name)

private person3() {}

public static synchronized person3 getperson()

return person;

}}

4.雙重檢查的懶漢式

package org.noah.singleton;

public class person4

public void setname(string name)

private person4() {}

public static person4 getperson()

}} return person;

}}

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...

設計模式之單例模式

package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...

設計模式之 單例模式

單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式 單件模式 使用方法返回唯一的例項 public class singleton private static singleton instance public static singleton geti...