理想的軟件設(shè)計(jì)特征

1、最小復(fù)雜度

避免進(jìn)行過度設(shè)計(jì),應(yīng)該做出簡(jiǎn)單且易于理解的設(shè)計(jì)。

2、易于維護(hù)

好的設(shè)計(jì)應(yīng)該考慮以后維護(hù)人員的工作,應(yīng)設(shè)計(jì)出能自明的系統(tǒng)。

3、松散耦合

在設(shè)計(jì)時(shí)讓程序的各個(gè)組成部分之間關(guān)聯(lián)最小。

4、可擴(kuò)展性

在增強(qiáng)系統(tǒng)功能時(shí)無需破壞其底層結(jié)構(gòu)。你可以改變系統(tǒng)的某一部分而不會(huì)影響到其他部分

5、可重用性

可重用性意味著所設(shè)計(jì)系統(tǒng)的組成部分能在其他系統(tǒng)中重復(fù)使用。

6、高扇入

高扇入是指讓大量的類使用某個(gè)給定的類。這意味著設(shè)計(jì)出的系統(tǒng)很好的利用了在較低層次的工具類。

7、低扇出

低扇出是指讓一個(gè)類里少量或適中的使用其他的類。高扇出(超過7個(gè))說明一個(gè)類大量使用了其他類,因此可能變得過于復(fù)雜。

8、可移植性

設(shè)計(jì)出的系統(tǒng)應(yīng)該能很方便的移植到其他環(huán)境中。

9、精簡(jiǎn)性

精簡(jiǎn)性意味著設(shè)計(jì)出的系統(tǒng)沒有多余的代碼。伏爾泰曾說,一本書的完成不在它不能再加入任何內(nèi)容的時(shí)候,而在它不能再刪去任何內(nèi)容的時(shí)候。要問這個(gè)關(guān)鍵的問題:“這雖然簡(jiǎn)單,但把它加進(jìn)來后會(huì)損害什么”。

10、層次性

層次性意味著盡量保持系統(tǒng)各個(gè)分解層的層次性,使你能在任意的層面上觀察系統(tǒng),并得到某種具有一致性的看法。設(shè)計(jì)出的系統(tǒng)應(yīng)該能在任意層次上觀察而不需要進(jìn)入其他層次。
舉例來說,假設(shè)你在編寫一個(gè)新系統(tǒng),其中用到很多設(shè)計(jì)不佳的舊代碼。這時(shí)你就應(yīng)該為新系統(tǒng)編寫一個(gè)負(fù)責(zé)同舊代碼交互的層,在設(shè)計(jì)這一層時(shí),要讓它能隱藏舊代碼的低劣質(zhì)量,同時(shí)為新的層次提供一組一致的服務(wù)。這樣你的系統(tǒng)的其他部分就只需與這一層進(jìn)行交互,而無須直接同舊代碼打交道了。在這個(gè)例子中,層次化設(shè)計(jì)的益處有:(1)它把低劣代碼的爛泥潭緊閉起來;(2)如果你最終能拋棄或者重構(gòu)舊代碼,那時(shí)就不必修改除交互層之外的任何新代碼。

11、標(biāo)準(zhǔn)技術(shù)

一個(gè)系統(tǒng)所依賴的外來的、古怪的系統(tǒng)越多,別人在第一次想要理解它的時(shí)候越頭疼。要盡量使用標(biāo)準(zhǔn)化的、常用的方法,讓整個(gè)系統(tǒng)給人一種熟悉的感覺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容