條款4:通過私有構(gòu)造?法強制禁?類的實例化

條款4:通過私有構(gòu)造?法強制禁?類的實例化

有時依啰,你想要編寫?個只包含?組靜態(tài)?法和靜態(tài)字段的類油狂。這種類有?個不太好的名聲站超,因為有些?會濫?他們斤程,不從對象的?度來思考角寸,?是堅信他們的想法是正確?誤的。他們可?于將針對原?值或是數(shù)組的?法劃分到?起忿墅,?如說java.lang.Math或是java.util.Arrays扁藕;還可以將靜態(tài)?法劃分到?起,包括??(條款1)疚脐,?于實現(xiàn)了某個接?的對象亿柑,?如說java.util.Collections(從Java 8開始,如果想要??修改棍弄,那么你還可以將這類?法放到接?中)望薄。最后,還可以將針對終態(tài)類的?法劃分到?起呼畸,因為你?法再將他們放到?類中了痕支。

這種輔助類在設(shè)計時是不希望被實例化的:實例本身是毫?意義的。不過蛮原,如果沒有顯式指定構(gòu)造?法卧须,那么編譯器就會提供?個公有、?參的默認構(gòu)造?法。對于?戶來說花嘶,該構(gòu)造?法很難與其他構(gòu)造?法區(qū)分開來笋籽。我們常常會在已發(fā)布的APIs中看到?意中被實例化的類。

通過將?個類設(shè)置為抽象類來強制禁?類的實例化是?不通的察绷。類可以被?類化干签,??類是可以實例化的。此外拆撼,這么做會對?戶產(chǎn)?誤導容劳,讓?戶誤以為這個類的設(shè)計?的是為了繼承(條款19)。然?闸度,有?種簡單的?式可以確保類?法被實例化竭贩。如果?個類中沒有顯式指定構(gòu)造?法,那么會?成?個默認構(gòu)造?法莺禁,因此通過在類中增加?個私有構(gòu)造?法就可以確保類?法被實例化了留量。

//不可實例化的實用程序類
public class UtilityClass {
//取消不可實例化的默認構(gòu)造函數(shù)
  private UtilityClass(){
    throw new AssertionError();
  }
}

由于顯式構(gòu)造?法是私有的,因此它在類的外部是?法被訪問到的哟冬。AssertionError并不是?定要加的楼熄,不過如果在類的內(nèi)部不??被調(diào)?的話,它會提供?種保證浩峡。它可以確保在任何情況下類都是絕對?法被實例化的可岂。這種?式有點?違背直覺,因為提供構(gòu)造?法的?的僅僅是為了??不能被調(diào)?翰灾。更好的做法則是加上?些注釋說明缕粹,正如上述代碼所做的那樣。

這種做法的?個副作?則是類也?法被?類化了纸淮。所有構(gòu)造?法都得顯式或隱式調(diào)??類構(gòu)造?法平斩,??類在這種情況下沒有可訪問到的?類構(gòu)造?法去調(diào)?。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咽块,一起剝皮案震驚了整個濱河市绘面,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侈沪,老刑警劉巖飒货,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異峭竣,居然都是意外死亡,警方通過查閱死者的電腦和手機晃虫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門皆撩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事扛吞∩胩瑁” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵滥比,是天一觀的道長亚脆。 經(jīng)常有香客問我,道長盲泛,這世上最難降的妖魔是什么濒持? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮寺滚,結(jié)果婚禮上柑营,老公的妹妹穿的比我還像新娘。我一直安慰自己村视,他們只是感情好官套,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚁孔,像睡著了一般奶赔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杠氢,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天站刑,我揣著相機與錄音,去河邊找鬼修然。 笑死笛钝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的愕宋。 我是一名探鬼主播玻靡,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼中贝!你這毒婦竟也來了囤捻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤邻寿,失蹤者是張志新(化名)和其女友劉穎蝎土,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绣否,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡誊涯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蒜撮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暴构。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡跪呈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出取逾,到底是詐尸還是另有隱情耗绿,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布砾隅,位于F島的核電站误阻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晴埂。R本人自食惡果不足惜究反,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望邑时。 院中可真熱鬧奴紧,春花似錦、人聲如沸晶丘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浅浮。三九已至沫浆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滚秩,已是汗流浹背专执。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留郁油,地道東北人本股。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像桐腌,于是被迫代替她去往敵國和親拄显。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容