軟件設(shè)計的目的
軟件設(shè)計的最終目的是使軟件代碼達(dá)到 高內(nèi)聚低耦合
從而使軟件 易擴(kuò)展琅拌,更強(qiáng)壯但惶,可移植咽白,更簡單
不好的代碼往往會出現(xiàn):
僵硬
脆弱
不可移植
晦澀
過度設(shè)計
僵硬
很難對系統(tǒng)進(jìn)行改動数冬,因為每個改動都會迫使許多對系統(tǒng)其他部分的改動
簡而言之:如果單一的改動某一個地方姓惑,會導(dǎo)致其他地方連鎖改動堡妒,就說明設(shè)計是僵化的配乱,改動的越多,設(shè)計越僵化
脆弱性
對系統(tǒng)的改動會導(dǎo)致系統(tǒng)中和改動的地方無關(guān)的許多地方出現(xiàn)問題皮迟。
出現(xiàn)新問題的地方與改動的地方?jīng)]有概念上的關(guān)聯(lián)搬泥,要修正這些問題又會引出更多的問題
牢固性
很難解開系統(tǒng)的糾結(jié),使之成為一些可以在其他系統(tǒng)中重用的組件
設(shè)計中包含可對其他系統(tǒng)有用的部分伏尼,但是將這些部分從系統(tǒng)中剝離出來是需要付出更多的努力
粘滯性
面對一個改動的時候忿檩。開發(fā)人員常常會發(fā)現(xiàn)多種改動的方法,有的方法會保持系統(tǒng)原來的設(shè)計爆阶,
不必要的復(fù)雜性
設(shè)計中包含不具有任何直接好處的基礎(chǔ)結(jié)構(gòu)
如果設(shè)計中包含有當(dāng)前沒有用的組成成分燥透,他就包含有不必要的復(fù)雜性,當(dāng)卡覅人員預(yù)測需求變化辨图,并處理軟件需求可能發(fā)生變化的代碼時班套,常常會出現(xiàn)這種情況
不必要的重復(fù)性
當(dāng)我們copy代碼的時候或者沒有將某些方法抽離,而在另一個地方自己造輪子就會導(dǎo)致代碼不必要的重復(fù)性