什麼叫單例模式
單例模式(singleton)是一種常用的設計模式。單例模式,也叫單子模式。在應用這個模式時,單例物件的類必須保證只有乙個例項存在。許多時候整個系統只需要擁有乙個的全域性物件,這樣有利於我們協調系統整體的行為
單例模式特點
顯然單例模式的要點有三個;一是某個類只能有乙個例項;二是它必須自行建立這個例項;三是它必須自行向整個系統提供這個例項。
單例大致分為5種
1.懶漢式
2.惡漢式
3.靜態內部類
4.列舉
5.雙重校驗鎖
目前只知道懶漢式和惡漢式 所以只重點總結下這兩個啦
這兩種模式的步驟大致相同
1.私有本類的構造方法
2.建立本類物件
3.對外提供訪問本類物件的功能
**體現:
//惡漢式: 缺點沒有達到lazy loading的效果
class single
public static single getinstance()
}
//懶漢式 比較常用的寫法
class single2
private static single2 instance = null;
public static single2 getinstance()
return instance ;
}}
//測試類
class singletest
}
這兩種實現方式個人覺得懶漢式比較好點 其特點就是需要建立物件的時候才會有,而惡漢式是類一載入就會建立物件
下面再列舉其他方式的**體現
//雙重校驗鎖,在當前的記憶體模型中無效
class locksingleton
public static locksingleton getinstance()}}
return singleton;
}}
//列舉, 優點: 不僅能避免多執行緒同步問題,而且還能防止反序列化重新建立新的物件
enum enumsingleton
}
//靜態內部類 優點: 載入是不會初始化靜態變數instance,因為沒有主動使用,達到lazyloading(這是啥)
class internalsingleton
private internalsingleton(){}
public static internalsingleton getinstance()
}
黑馬程式設計師 單例模式
asp.net unity開發 net培訓 期待與您交流!單例模式 解決乙個類在記憶體中只存在乙個物件的情況 為了保證避免程式過多建立物件,禁止其他程式建立該類物件 為了其他程式可以訪問該類物件,只好在本類中自定義物件 為了方便其他程式對自定義物件的訪問,可對物件提供一些訪問方式。單例模式實現方式 ...
黑馬程式設計師 單例設計模式
asp.net android io開發s net培訓 期待與您交流!設計要求 1.只能被例項化一次。2.由自己建立例項。3.能向該類任意引用提供上述例項。方式一 餓漢式 class single public static single getinstance 方式二 懶漢式 class sing...
黑馬程式設計師 單例設計模式
asp.net android ios開發 net培訓 期待與您交流!單例設計模式 解決乙個類在記憶體中只存在乙個物件。想要保證物件唯一。1,為了避免其他程式過多建立該類物件。先禁止其他程式建立該類物件 2,還為了讓其他程式可以訪問到該類物件,只好在本類中,自定義乙個物件 3,為了方便其他程式對自定...