新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C++中類的分層設(shè)計(jì)(純虛函數(shù))

C++中類的分層設(shè)計(jì)(純虛函數(shù))

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏


就假設(shè)我們要實(shí)現(xiàn)一個(gè)比較簡(jiǎn)單的校園人類,假設(shè)已經(jīng)存在了一個(gè)人的基類(Base),那么學(xué)校的人存在很多的特征,但是我認(rèn)為主要分成了3大類,主要是學(xué)生、教師、服務(wù)人員,因此可以再基類的基礎(chǔ)上派生出三個(gè)抽象類,Studtent, Teacher, Service,就如同上面的抽象類1,抽象類2,抽象類3。這時(shí)候設(shè)計(jì)一個(gè)實(shí)際的派生類也就減小了很多的冗余。但是我們覺得還是會(huì)存在很多的相似之處,比如學(xué)生類而言,還是可以再分,可以分為男女,這樣分并不是最好的,我們實(shí)際上可以按照專業(yè)分,這時(shí)候又可以再Student的基礎(chǔ)上派生出不同的學(xué)生專業(yè)抽象類,在各個(gè)專業(yè)下又可以分為博士、研究生、大學(xué)生抽象類,在這些抽象類的基礎(chǔ)上還可以分為男女抽象類,到這時(shí)就可以直接完成具體每一個(gè)派生類的實(shí)現(xiàn)啦,這時(shí)候的直接基類就是男女學(xué)生抽象類,這樣就形成了一個(gè)多層次的分解問題,將一個(gè)大的問題分解成了很多的子類,在子類的基礎(chǔ)上在分成更細(xì)的子類,最后到達(dá)一個(gè)精細(xì)的抽象子類,這時(shí)實(shí)現(xiàn)一個(gè)具體的派生類就會(huì)非常的方便。也就減少了很多的冗余代碼,雖然設(shè)計(jì)的類更多了,但是實(shí)現(xiàn)的方式會(huì)更加的容易。所以說分層設(shè)計(jì)的思想是一個(gè)重要的思想,分層就能將一個(gè)大問題逐步喜歡,而在C++中純虛函數(shù)(抽象類)的運(yùn)用就能夠巧妙的解決這種多層次設(shè)計(jì)問題。所以說我們的分層設(shè)計(jì)不僅僅只是單一層的,也可以是多層次的。如下圖所示:

因此我們應(yīng)該掌握C++中這種純虛函數(shù)的用法,只有掌握了這種設(shè)計(jì)方法才能實(shí)現(xiàn)更加漂亮的類設(shè)計(jì)。當(dāng)然上面只是我的一些遐想。具體的實(shí)現(xiàn)過程還需要在經(jīng)后的實(shí)踐中練習(xí)。在類的設(shè)計(jì)中多增加抽象類能夠簡(jiǎn)化類的冗余度,使得類能更加方便的被繼承。從上面的結(jié)果我們可以將分層設(shè)計(jì)看做一個(gè)樹形結(jié)構(gòu),基類就是樹的根,而實(shí)際的派生類是就是葉,而那些中間的抽象層就是節(jié)點(diǎn)。

本文引用地址:http://2s4d.com/article/201612/324491.htm

上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉