五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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


單例模式的評論 (共 條)

分享到微博請遵守國家法律
富蕴县| 烟台市| 罗田县| 鞍山市| 武邑县| 扶风县| 洛隆县| 姚安县| 班戈县| 桂平市| 胶州市| 漳平市| 拜泉县| 平遥县| 商洛市| 高州市| 长丰县| 滦平县| 工布江达县| 宁明县| 含山县| 文水县| 元阳县| 青海省| 石门县| 泗阳县| 嘉义县| 郧西县| 和顺县| 阳山县| 唐海县| 公安县| 龙门县| 宝坻区| 永州市| 乐至县| 香河县| 南安市| 若尔盖县| 泾阳县| 察隅县|