設計模式之單例模式

2021-09-02 10:02:25 字數 760 閱讀 6464

什麼是單例模式?

單例模式就是乙個類只能產生乙個例項,如果控制乙個類只能產生乙個例項呢?

我們在建立物件時一般都是使用new來產生物件即呼叫類的構造方法,如果將構造方法私有化那麼就控制了外部類隨意建立物件的能力。

所以單例的實現可以總結為:

1.構造方法私有化

2.類中含有乙個本型別的靜態的私有化的屬性

3.對外提供乙個靜態的返回本型別的靜態方法

單例模式的實現分為懶漢式和餓漢式

餓漢式:

public class singleton 

// 私有化 靜態 本型別的屬性

private static singleton instance = new singleton();

// 對外提供乙個靜態的返回本型別的方法

public static singleton getinstance()

}

懶漢式

public class singleton 

// 私有化 靜態 本型別的屬性

private static singleton instance = null;

// 對外提供乙個靜態的返回本型別的方法

public static singleton getinstance()

return instance;

}}

解決辦法

1.直接使用餓漢式

2.對懶漢式getinstance()方法新增synchronize關鍵字

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會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...