最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

單例模式

2023-06-07 18:03 作者:便宜酒  | 我要投稿

用于保證一個類只有一個實例,并提供全局訪問點。在安卓開發(fā)中,可以用單例來實現(xiàn)不同Activity之間共享數(shù)據(jù),比如某自定義類的集合。

【懶漢式】

調(diào)用get方法時才完成實例化。

【餓漢式】

程序啟動時就立即創(chuàng)建該單例對象。不需要考慮線程安全問題。

【破壞單例模式】

1.通過Singleton.class獲取Singleton類的Class對象,然后使用getDeclaredConstructor()方法獲取Singleton類的構(gòu)造方法,再通過setAccessible(true)方法將構(gòu)造方法的訪問權(quán)限設(shè)置為可訪問,最后使用newInstance()方法創(chuàng)建Singleton對象。

解決方法:加對象鎖或者同步鎖都可以。

2.當(dāng)一個單例對象被序列化后,如果在反序列化過程中沒有特殊處理,會通過調(diào)用類的構(gòu)造方法來創(chuàng)建對象,那么系統(tǒng)會重新創(chuàng)建一個新的對象,從而導(dǎo)致原有的單例對象被破壞。單例模式的構(gòu)造方法通常被私有化,從而不能直接被外部調(diào)用。因此,如果沒有特殊處理,系統(tǒng)會使用默認的構(gòu)造方法來創(chuàng)建一個新的對象。

如下方式可以解決。在反序列化時會返回已經(jīng)創(chuàng)建好的單例實例,而不會再創(chuàng)建新的實例。


單例模式的評論 (共 條)

分享到微博請遵守國家法律
青龙| 于都县| 汶川县| 扎兰屯市| 雷山县| 临高县| 齐河县| 泾源县| 嘉荫县| 广汉市| 福贡县| 岗巴县| 丘北县| 甘德县| 竹山县| 司法| 隆昌县| 罗源县| 台北县| 利辛县| 浠水县| 邢台市| 湄潭县| 东至县| 兴宁市| 电白县| 诏安县| 内乡县| 宝清县| 普宁市| 闸北区| 富源县| 青阳县| 芮城县| 光山县| 灵石县| 新龙县| 南康市| 舞阳县| 元朗区| 瑞昌市|