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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Singleton的替代方案是什么

Singleton的替代方案是什么

Qyouu 2019-10-14 14:17:13
我們有一個(gè)類,其中包含應(yīng)用程序的配置信息。它曾經(jīng)是一個(gè)單身人士。經(jīng)過一些體系結(jié)構(gòu)審查后,我們被告知?jiǎng)h除單例。我們確實(shí)看到了在單元測(cè)試中不使用單例的一些好處,因?yàn)槲覀兛梢砸淮螠y(cè)試所有不同的配置。沒有單例,我們必須在代碼中的所有地方傳遞實(shí)例。變得太亂了,所以我們寫了一個(gè)單例包裝器?,F(xiàn)在我們將相同的代碼移植到PHP和.NET,我想知道是否有更好的模式可用于配置對(duì)象。
查看完整描述

3 回答

?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

在谷歌測(cè)試博客有一系列的關(guān)于避免(以創(chuàng)建可測(cè)試的代碼)辛格爾頓條目。也許這可以幫助您:


使用依賴注入避免單例

單身人士是病態(tài)的騙子

單身人士的根本原因

單身人士去哪兒了?

上一篇文章詳細(xì)解釋了如何將新對(duì)象的創(chuàng)建移入工廠,因此可以避免使用單例。值得一讀。


簡(jiǎn)而言之,我們將所有新的操作員移至工廠。我們將壽命相似的所有對(duì)象歸為一個(gè)工廠。


查看完整回答
反對(duì) 回復(fù) 2019-10-14
?
慕后森

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

不要累積對(duì)單個(gè)配置對(duì)象的責(zé)任,因?yàn)樗鼤?huì)以難以理解且脆弱的非常大的對(duì)象結(jié)尾。


例如,如果您需要特定類的另一個(gè)參數(shù)Configuration,則可以更改對(duì)象,然后重新編譯使用該對(duì)象的所有類。這有些問題。


嘗試重構(gòu)您的代碼,以避免一個(gè)通用的全局Configuration對(duì)象。僅將必需的參數(shù)傳遞給客戶端類:


class Server {


    int port;


    Server(Configuration config) {

        this.port = config.getServerPort();

    } 


}

應(yīng)該重構(gòu)為:


 class Server {


    public Server(int port) {

       this.port = port;

    }

 }

一個(gè)依賴注入框架將有很大的幫助在這里,但它不是stricly要求。


查看完整回答
反對(duì) 回復(fù) 2019-10-14
  • 3 回答
  • 0 關(guān)注
  • 729 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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