問答題

【簡(jiǎn)答題】

某系統(tǒng)提供一個(gè)數(shù)據(jù)轉(zhuǎn)換模塊,可以將來自不同數(shù)據(jù)源的數(shù)據(jù)轉(zhuǎn)換成多種格式,如可以轉(zhuǎn)換來自數(shù)據(jù)庫的數(shù)據(jù)(DatabaseSource)、也可以轉(zhuǎn)換來自文本文件的數(shù)據(jù)(TextSource),轉(zhuǎn)換后的格式可以是XML文件(XMLTransformer)、也可以是XLS文件(XLSTransformer),原始設(shè)計(jì)方案如圖所示,請(qǐng)指出設(shè)計(jì)存在的問題,并基于依賴倒轉(zhuǎn)原則進(jìn)行重構(gòu)。

答案: 因?yàn)樵撓到y(tǒng)可能需要增加新的數(shù)據(jù)源或者新的文件格式,每增加一個(gè)新類型的數(shù)據(jù)源或者新類型的文件格式,客戶類MainClass...
題目列表

你可能感興趣的試題

問答題

【簡(jiǎn)答題】

某圖形界面系統(tǒng)提供了各種不同形狀的按鈕,客戶端代碼可針對(duì)這些按鈕進(jìn)行編程,用戶可能會(huì)改變需求要求使用不同的按鈕,原始設(shè)計(jì)方案如圖所示,請(qǐng)指出設(shè)計(jì)存在的問題,并基于開閉原則對(duì)該系統(tǒng)進(jìn)行重構(gòu)。

答案: 客戶端的一個(gè)方法直接調(diào)用加法類,當(dāng)需要變更,如想添加一個(gè)減法類時(shí)就得改變加法類中代碼(用switch語句實(shí)現(xiàn)),這就違背...
微信掃碼免費(fèi)搜題