程序設(shè)計,無限繼承是不是一個好的設(shè)計模式
程序設(shè)計是否應(yīng)該應(yīng)用多重繼承的思想去實現(xiàn)業(yè)務(wù)邏輯呢?
還是今天的郵件系統(tǒng)設(shè)計,郵件系統(tǒng)功能組件挺多的,包括郵件條,郵件條對象池,郵件條建立的接口,郵件物品對象池,郵件收到對象池.......好多
這樣的一套程序?qū)懴聛斫^對
第一天看:還可以挺完美。
第二天看:這部分的程序設(shè)計怎么這么別扭呢?
第三天看:這部分邏輯應(yīng)用可能有點問題
第四天看:哇,一坨shit
第五天看:重構(gòu)中.....
我就是一個程序架構(gòu)設(shè)計的過程了,我已經(jīng)經(jīng)歷了第4天,按理來說所有的程序設(shè)計都應(yīng)該實現(xiàn)的是一個高內(nèi)聚,低耦合的設(shè)計原則,這是一個什么樣的原則呢?
一個功能盡力不要和其他類等等做成分布的功能,從而牽一發(fā)而動全身這就是高內(nèi)聚,低耦合是類關(guān)系依賴性質(zhì)降低,同樣也是為了避免牽一發(fā)而動全身,簡單的東西可能還行如果程序大起來那簡直就是一個坑呀!會對未來造成無限的沖擊最終所有的應(yīng)用都碎成渣渣。
很顯然這并不是我們設(shè)計人員想要的結(jié)果
那么下面就思考一下無限的嵌套繼承這種模式去實現(xiàn)到高內(nèi)聚低耦合是否是可行的~
首先這個確實是實現(xiàn)了高內(nèi)聚低耦合,但是嵌套多了起來所帶來的問題是什么呢?
讓我們幻想一下一個大一些的功能分成了10個類繼承下來,每個類都是特別的,套起來連環(huán)10個20個30個,哇這會是一個多大的程序呢?
如果再想一想如果是這10個類的內(nèi)容放在1個類里面實現(xiàn),一個類200行實現(xiàn)功能,實現(xiàn)下來一個文件2000行代碼,20個類,4000行,30個類6000行代碼??!
看來這都不是我們想要的結(jié)果吧~
如果二選一呢?我們肯定會選擇分出多個類的那個設(shè)計,首先這個容易維護一些,但是貌似也并不是非常完美的。
或許我們應(yīng)該遵循一個平衡一些的想法,兩者都有單獨的功能分一個類但是并不是都掛到一起,也就是中道的思想,既不向多個類這樣細致到每一處的拆分功能,又不像這樣不管三七二十一把所有功能都堆到一個類里面讓程序不可維護。
所以最終
我們應(yīng)該兩者都不偏向,保持正中~
這時候再看無限的嵌套繼承是一個好的優(yōu)秀的設(shè)計模式
而這個優(yōu)秀還是決定于編程人員設(shè)計時候的思想和把握。