亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

參數設置設計模式

參數設置設計模式

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

2 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

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

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


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

TA貢獻1784條經驗 獲得超9個贊

建造者模式 + 策略模式

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


查看完整回答
反對 回復 2018-08-06
  • 2 回答
  • 0 關注
  • 1098 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號