第2章 抽象層次
本章主要內(nèi)容如下:
● 如何以清晰的抽象層次將問題分解為多個子問題;
● 抽象層次如何幫助我們實現(xiàn)代碼質(zhì)量的一些支柱;
● API(見2.3.1節(jié))和實現(xiàn)細節(jié);
● 如何用函數(shù)、類和接口將代碼分解為不同的抽象層次。
編寫代碼就是解決問題——這些問題可能是高層次的問題,例如“我們需要一個系統(tǒng),使用戶能夠共享照片”,也可能是較低層次的問題,例如“我們需要一些代碼,求兩個數(shù)字的和”。我們可能沒有意識到一個事實:在解決高層次問題時,我們通常會將其分解為幾個較小的子問題。“我們需要一個系統(tǒng),使用戶能夠共享照片”這樣的問題陳述可能意味著,我們需要解決保存照片、將其與用戶關(guān)聯(lián)并顯示等子問題。
解決問題和子問題的方法很重要,但我們解決這些問題的代碼結(jié)構(gòu)同等重要。例如,我們應(yīng)該將所有功能都放到一個龐大的函數(shù)或類中,還是將其分解為多個函數(shù)或功能?如果需要分解,我們又應(yīng)該怎么做呢?
代碼結(jié)構(gòu)是代碼質(zhì)量的根本特征之一,好的結(jié)構(gòu)往往能建立清晰的抽象層次。本章將解釋代碼結(jié)構(gòu)的含義,并說明將問題分解為不同的抽象層次并構(gòu)造代碼以反映這些層次,能夠極大地改善代碼的可讀性、模塊性、可重用性、可推廣性和可測試性。
本章和后面的章節(jié)通過許多偽代碼示例來說明討論的主題。在深入介紹這些示例之前,花一些時間解釋本書中偽代碼處理空值(Null)的慣例是很有必要的。2.1節(jié)將介紹這方面的知識。從2.2節(jié)起我們將介紹本章的主題。
推薦閱讀
- DevOps原理與實踐
- 敏捷開發(fā)的藝術(shù)(原書第2版)
- 從零基礎(chǔ)到精通Flutter開發(fā)
- Android游戲開發(fā)大全
- MATLAB 2018從入門到精通
- 程序員的制勝技
- 軟件工程理論與應(yīng)用
- 結(jié)構(gòu)BIM應(yīng)用教程
- 從缺陷中學習C/C++
- 軟件研發(fā)效能提升之美
- 解決方案架構(gòu)師修煉之道(原書第2版)
- 每天5分鐘玩轉(zhuǎn)OpenStack
- 基于Pro/Engineer Wildfire的直齒圓錐齒輪虛擬設(shè)計與制造
- CATIA V5 從入門到精通(第二版)
- 計算機網(wǎng)絡(luò)系統(tǒng)集成技術(shù)基礎(chǔ)與解決方案