国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)建新的實例。


單例模式的評論 (共 條)

分享到微博請遵守國家法律
嘉鱼县| 九台市| 分宜县| 东光县| 于都县| 广饶县| 环江| 容城县| 青海省| 池州市| 政和县| 华亭县| 光泽县| 鞍山市| 漳州市| 余姚市| 岚皋县| 江都市| 宣威市| 沂水县| 蒲城县| 柳林县| 呼伦贝尔市| 平江县| 宜兰市| 秦安县| 清水县| 隆昌县| 南平市| 延长县| 定西市| 怀柔区| 五莲县| 望城县| 阜康市| 建平县| 克山县| 象山县| 嘉兴市| 潜山县| 武鸣县|