真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java的單例模式有什么優(yōu)缺點

今天就跟大家聊聊有關(guān)java的單例模式有什么優(yōu)缺點,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、榮成網(wǎng)絡(luò)推廣、微信小程序、榮成網(wǎng)絡(luò)營銷、榮成企業(yè)策劃、榮成品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供榮成建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

一.什么是單例模式

單例模式(Singleton Pattern)是 Java 中最簡單的設(shè)計模式之一。單例模式就是: 在程序運行期間, 某些類有且最多只有一個實例對象。這種模式涉及到一個單一的類,該類負責創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建。這個類提供了一種訪問其唯一的對象的方式,可以直接訪問,不需要實例化該類的對象。

二.單例模式的實現(xiàn)思路

1、靜態(tài)化實例對象, 讓實例對象與Class對象互相綁定, 通過Class類對象就可以直接訪問;

2、私有化構(gòu)造方法, 禁止通過構(gòu)造方法創(chuàng)建多個實例;

3、提供一個公共的靜態(tài)方法, 用來返回這個類的唯一實例。

三.單例模式的優(yōu)缺點

優(yōu)點:

1、在內(nèi)存里只有一個實例,減少了內(nèi)存的開銷,尤其是頻繁的創(chuàng)建和銷毀實例。

2、避免對資源的多重占用。

缺點:

沒有接口,不能繼承,與單一職責原則沖突,一個類應(yīng)該只關(guān)心內(nèi)部邏輯,而不關(guān)心外面怎么樣來實例化。

四.單例模式的幾種不同寫法

1、懶漢式

package com.yx.singleton;
 
/**
 * Singleton
 * 

初級原型-懶漢式 *

優(yōu)點:用到時再初始化 *

缺點:并發(fā)下會產(chǎn)生多個實例 *

不推薦 * * @author yx * @date 2019/11/24 12:18 */ public class Singleton { /** * 靜態(tài)化實例對象 */ private static Singleton sInstance = null; /** * 私有構(gòu)造方法 */ private Singleton() { } /** * 提供一個公共的靜態(tài)方法, 用來返回這個類的唯一實例. * * @return 單例對象 */ public static Singleton getInstance() { if (sInstance == null) { sInstance = new Singleton(); } return sInstance; } }

上面這種寫法,在并發(fā)環(huán)境下,會出現(xiàn)多個實例,線程不安全。

枚舉方式

/**
 * EnumSingleton
 * 枚舉類單例模式
 *
 * 

優(yōu)點:不需要考慮序列化的問題;不需要考慮反射的問題 *

缺點:所有的屬性都必須在創(chuàng)建時指定, 也就意味著不能延遲加載; 并且使用枚舉時占用的內(nèi)存比靜態(tài)變量的2倍還多 * * @author yx * @date 2019/11/24 15:09 */ public enum EnumSingleton { INSTANCE }

看完上述內(nèi)容,你們對java的單例模式有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


名稱欄目:java的單例模式有什么優(yōu)缺點
文章網(wǎng)址:http://weahome.cn/article/igpsgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部