第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單身人士:好的設(shè)計還是拐杖?

單身人士:好的設(shè)計還是拐杖?

holdtom 2019-08-30 16:20:25
單身人士是一個備受爭議的設(shè)計模式,所以我對Stack Overflow社區(qū)對它們的看法感興趣。請?zhí)峁┠囊庖姷脑颍粌H僅是“單身人士是懶惰的程序員!”這是一篇關(guān)于這個問題的相當(dāng)不錯的文章,盡管它反對使用Singletons: scientificninja.com:performant-singletons。有沒有人對他們有任何其他好文章?也許是為了支持單身人士?
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個贊

在保護(hù)單身人士方面:

  • 它們沒有全局變量那么糟糕,因?yàn)槿肿兞繘]有標(biāo)準(zhǔn)強(qiáng)制的初始化順序,并且您可以輕松地看到由于天真或意外的依賴順序而導(dǎo)致的不確定性錯誤。單身人士(假設(shè)他們在堆上被分配)是在所有全局變量之后創(chuàng)建的,并且在代碼中的一個非??深A(yù)測的位置。

  • 它們對資源惰性/緩存系統(tǒng)非常有用,例如慢速I / O設(shè)備的接口。如果您智能地為慢速設(shè)備構(gòu)建單獨(dú)的接口,并且沒有人調(diào)用它,那么您將不會浪費(fèi)任何時間。如果另一段代碼從多個位置調(diào)用它,您的單例可以同時優(yōu)化兩者的緩存,并避免任何雙重查找。您還可以輕松避免單例控制資源上的任何死鎖條件。

反對單身人士:

  • 在C ++中,單身后沒有很好的自動清理方法。 有一些解決方法和稍微有些方法可以做到這一點(diǎn),但是沒有簡單,通用的方法來確保你的單例的析構(gòu)函數(shù)總是被調(diào)用。對于這個目的而言,這并不是一個非??膳碌挠洃?- 只是將其視為更多的全局變量。但是,如果您的單例分配其他資源(例如鎖定某些文件)并且不釋放它們,則可能會很糟糕。

我自己的意見:

我使用單身人士,但如果有合理的選擇,請避開它們。到目前為止,這對我來說效果很好,而且我發(fā)現(xiàn)它們是可測試的,盡管測試的工作稍微多一些。


查看完整回答
反對 回復(fù) 2019-08-30
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊

Google有一個針對Java 的Singleton Detector,我認(rèn)為這個工具必須在Google生成的所有代碼上運(yùn)行。刪除單身人士的簡單原因:


因?yàn)樗鼈兛梢允箿y試變得困難并且可以隱藏您的設(shè)計問題


有關(guān)更明確的解釋,請參閱Google的“ 為什么單身人士有爭議 ”。


查看完整回答
反對 回復(fù) 2019-08-30
?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個贊

單身人士只是一件化裝的全球變數(shù)。

全局變量有它們的用途,就像單身一樣,但是如果你認(rèn)為你正在用單例而不是使用一個令人討厭的全局變量做一些很酷且有用的東西(每個人都知道全局變量是壞的mmkay),你不幸會被誤導(dǎo)。


查看完整回答
反對 回復(fù) 2019-08-30
  • 3 回答
  • 0 關(guān)注
  • 547 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號