您好,登錄后才能下訂單哦!
還是談STL源碼分析吧,這部分看書這的看不下去,我是看的侯捷老師的視頻看下去的。他對(duì)比了2.9版和4.9版的list node的設(shè)計(jì),我相對(duì)還是比較欣賞4.9的設(shè)計(jì)的,因?yàn)?.9的設(shè)計(jì)更加符合高內(nèi)聚,低耦合的特性。
先來看2.9版的:
這樣的list node設(shè)計(jì)確實(shí)很簡(jiǎn)單,但是也有問題。如果我們要移動(dòng)list,就必須在list node里面分別保存list的指針,試想一下,我要內(nèi)含一個(gè)結(jié)構(gòu),這個(gè)結(jié)構(gòu)還要包含我的信息,那為什么不設(shè)計(jì)到一起來?
再來看4.9版的:
這里,list_node_base里面包含自己的指針,然后她下面的子類的自己新加數(shù)據(jù)類型,這樣一來,指針是自己,數(shù)據(jù)也是自己管理,就滿足封裝的要求,也滿足高內(nèi)聚,低耦合的特性,雖然結(jié)構(gòu)層次復(fù)雜了,但是這樣思路就更加清晰了。
現(xiàn)在還只是在看書,紙上談兵,只希望自己有一天有能力能夠看一遍STL的源碼,估計(jì)能學(xué)到很多設(shè)計(jì)模式的知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。