終結(jié)器是不可預(yù)測的、常常會很危險,?且通常沒必要。使?終結(jié)器會導(dǎo)致奇怪的?為、孱弱的性能以及可移植性問題。終結(jié)器存在?些使?場景,稍后就會介紹,不過作為?條原則,你應(yīng)該避免使...
終結(jié)器是不可預(yù)測的、常常會很危險,?且通常沒必要。使?終結(jié)器會導(dǎo)致奇怪的?為、孱弱的性能以及可移植性問題。終結(jié)器存在?些使?場景,稍后就會介紹,不過作為?條原則,你應(yīng)該避免使...
規(guī)范不僅沒有提供終結(jié)器或是清理器會?刻運(yùn)?的保證,也沒有對其?定會運(yùn)?提供任何保證。完全有可能出現(xiàn)這樣的情況,當(dāng)程序終?時,它并沒有對早就處于不可達(dá)的對象運(yùn)?其終結(jié)器和清理器...
條款7:消除廢棄的對象引用(二) 當(dāng)程序員初次遇到這個問題時,他們會采取矯枉過正的措施:當(dāng)程序使?完對象后,會將每個對象引?都設(shè)為null。這么做既沒必要,也不值得;它會毫?...
條款7:消除廢棄的對象引用(一) 如果你從??需要?動進(jìn)?內(nèi)存管理的語?(如C或是C++)轉(zhuǎn)到了垃圾回收語?(如Java),那么作為程序員來說,你的?作會簡化很多,因?yàn)閷ο笤?..
條款6:避免創(chuàng)建不必要的對象(二) 如果包含了改進(jìn)版本isRomanNumeral?法的類被初始化了,但該?法卻永遠(yuǎn)沒有被調(diào)?,那么字段ROMAN的初始化就是毫?必要的??梢?..
條款6:避免創(chuàng)建不必要的對象(一) 在需要?個對象時,恰當(dāng)?shù)淖龇ㄊ潜M可能重?這個對象??創(chuàng)建?個功能完全?樣的新對象。重?既快?時髦。如果對象是不可變的,那么它總是可以被重?...
第八章 抽象工廠模式 抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創(chuàng)建其他工廠。該超級工廠又稱為其他工廠的工廠。這種類型的設(shè)計模式屬于創(chuàng)...
第七章 工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計模式之一。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。在工廠模式...
條款5:優(yōu)先選擇依賴注??非硬編碼資源的關(guān)聯(lián)關(guān)系 很多類都會依賴于?個或多個底層資源。?如說,拼寫檢查器會依賴于字典。我們常常會看到這種類被實(shí)現(xiàn)為了靜態(tài)輔助類(條款4): 與...
條款4:通過私有構(gòu)造?法強(qiáng)制禁?類的實(shí)例化 有時,你想要編寫?個只包含?組靜態(tài)?法和靜態(tài)字段的類。這種類有?個不太好的名聲,因?yàn)橛行?會濫?他們,不從對象的?度來思考,?是堅...
第六章 橋接模式 橋接(Bridge)是用于把抽象化與實(shí)現(xiàn)化解耦,使得二者可以獨(dú)立變化。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它通過提供抽象化和實(shí)現(xiàn)化之間的橋接結(jié)構(gòu),來實(shí)現(xiàn)二者的...
條款3:強(qiáng)制對單例屬性使用私有構(gòu)造?法或是枚舉類型 所謂單例,指的是只會實(shí)例化?次的類[Gamma95]。單例要么表示?個?狀態(tài)的對象(?如說函數(shù),條款25),要么表示?個本...
第五章 裝飾模式 裝飾器模式(Decorator Pattern)允許向一個現(xiàn)有的對象添加新的功能,同時又不改變其結(jié)構(gòu)。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類的一...
靜態(tài)??與構(gòu)造?法有?個共通的限制:當(dāng)存在?量的可選參數(shù)時,他們的可伸縮性很差??紤]這樣?個類,它表示貼在包裝好的?品上的營養(yǎng)表標(biāo)簽。這些標(biāo)簽有?些必要的字段,如分量??、每...
第一章 創(chuàng)建和銷毀對象 條款1:考慮使?靜態(tài)???法??構(gòu)造?法 對于?個類來說,若想讓客戶端能夠獲取到其實(shí)例,傳統(tǒng)?式是提供?個公有的構(gòu)造?法。實(shí)際上,還有另外?種技術(shù)應(yīng)該...
第四章 觀察者模式 當(dāng)對象間存在一對多關(guān)系時,則使用觀察者模式(Observer Pattern)。比如,當(dāng)一個對象被修改時,則會自動通知依賴它的對象。觀察者模式屬于行為型模...
第三章 策略模式 在策略模式(Strategy Pattern)中,一個類的行為或其算法可以在運(yùn)行時更改。這種類型的設(shè)計模式屬于行為型模式在策略模式中,我們創(chuàng)建表示各種策略的...
第二章 模板方法模式 在模板模式(Template Pattern)中,一個抽象類公開定義了執(zhí)行它的方法的方式/模板。它的子類可以按需要重寫方法實(shí)現(xiàn),但調(diào)用將以抽象類中定義的...
第一章 設(shè)計模式簡介 1.1 面向?qū)ο笤O(shè)計原則 對接口編程而不是對實(shí)現(xiàn)編程 優(yōu)先使用對象組合而不是繼承 1.2 設(shè)計模式的類型 總共有 23 種設(shè)計模式。這些模式可以分為三大...