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

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

參數(shù)設(shè)置設(shè)計模式

參數(shù)設(shè)置設(shè)計模式

守著一只汪 2018-08-03 17:29:23
假設(shè)有多個類A, B, C,他們都有許多參數(shù)需要初始化,而這些參數(shù)來源有很多,可能在多種格式的文件中,也可能來自GUI,此外A,B,C除了這些參數(shù)還需要其他額外的,對于這種情況有沒有一種好的設(shè)計模式。我現(xiàn)在的實現(xiàn)是這樣的,一個抽象類提供讀取接口:Importer、各種具體讀取類來繼承這個抽象類:XXXImporter、XXXImporter,但是現(xiàn)在的問題就是A,B,C中的成員都是私有的,而XXXImporter等繼承類無法訪問,除非每個XXXImporter都設(shè)成友元類,這樣就變得很不容易擴(kuò)展了。因為我每加一個XXXImporter,就要在每個A,B,C等類中添加相應(yīng)的友元。除了這種方式,有沒有更好的辦法?
查看完整描述

2 回答

?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗 獲得超2個贊

~~可以使用策略的方式,不清楚這種方式對你的設(shè)計是否有用

template <typename Importer>struct A
{    void doImport()
    {
        Importer::importImpl(); // 讀取數(shù)據(jù)處理
    }
};


查看完整回答
反對 回復(fù) 2018-08-06
?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗 獲得超9個贊

建造者模式 + 策略模式

通過配置文件配置建造順序,決定同樣的參數(shù),不同來源的覆蓋策略。另外,在構(gòu)建的時候把這些Importer放到一個容器里面,director類在構(gòu)建的時候根據(jù)配置策略挨個去找這些Importer就可以了。設(shè)置參數(shù)的時候可以通過反射實現(xiàn)。


查看完整回答
反對 回復(fù) 2018-08-06
  • 2 回答
  • 0 關(guān)注
  • 1112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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