最近看了《Inside ATL》這本書,感覺(jué)作者從軟件工程的角度分析ATL和MFC很有獨(dú)到的見解,某些觀點(diǎn)和我的想法差不多,覺(jué)得該把自己的想法說(shuō)下,權(quán)當(dāng)拋磚引玉,歡迎批評(píng)指正。
首先,MFC作為一個(gè)成熟的類框架,依靠嚴(yán)格的類繼承關(guān)系,實(shí)現(xiàn)了代碼復(fù)用和美觀界面,但也正是由于這種繼承關(guān)系導(dǎo)致了MFC的龐大臃腫。
ATL則依靠Template實(shí)現(xiàn)了一批彼此無(wú)依賴關(guān)系的組件,類似于搭積木,而MFC就像現(xiàn)代建筑中的鋼筋混凝土結(jié)構(gòu)。
從技術(shù)實(shí)現(xiàn)上,MFC和ATL的對(duì)比就是類和模板的比照,一個(gè)縱向發(fā)展,一個(gè)橫向發(fā)展。
擴(kuò)展到設(shè)計(jì)模式的角度來(lái)看,其實(shí)就是高內(nèi)聚和低耦合思想的體現(xiàn),MFC重高內(nèi)聚,ATL重低耦合,記得有本講設(shè)計(jì)模式的書上有個(gè)例子,把鴨子和鴨子的行為分開設(shè)計(jì),這其實(shí)也是降低耦合度的一種方法。
高內(nèi)聚,低耦合六個(gè)字,真正理解它還真不容易!
posted on 2009-07-24 16:43
鷹擊長(zhǎng)空 閱讀(432)
評(píng)論(0) 編輯 收藏 引用