如何寫好類中的子程式

2022-09-08 06:03:02 字數 2669 閱讀 2793

子程式的優點:

子程式的使用時的程式變得更加易讀,更加易於理解。

子程式用以節約空間和提高效能的最重要的手段。

建立子程式的理由:

1.降低複雜度:可以隱藏一些資訊;當內部迴圈或條件判斷的巢狀層次很深時,這就需要從子程式中提取新的子程式了。

2.引入中間、易懂的抽象

3.避免**重複:事實上,如果在兩段子程式內有相似的**,就以為這**分解有問題,應該把相似的**提取出來,將其中相同部分放入乙個基類,然後再把兩段程式中的差異**放入派生類中。

4.支援子類話:覆蓋簡短而規整的子程式所需新**的數量,要比覆蓋冗長邋遢的子程式更少。

5.隱藏順序:把處理事件隱藏起來是乙個好主意。

6.隱藏指標:指標操作的可讀性通常都很差,而且容易出錯。通過把這些操作隔離在子程式內部,就可以把經歷集中於操作的意圖本身,而不是指標操作機制的細節。

7.提高可移植性:可以用子程式來隔離程式中不可移植的部分,從而明確識別和隔離未來的移植工作。

8.簡化複雜的布林判斷

9.改善效能

似乎過於簡單而沒有必要寫成子程式的操作:

對於只有幾行**比較簡單的子程式來說,到底有沒有必要將它寫出來?這個還是得根據**編寫的需求而定,如果其他函式都用到了這些**,那麼最好將其寫入乙個子函式中,這樣在後期如果要修改的話不用到各個其他函式中修改,只要在這個簡單的子函式修改即可,這樣可以減少工作量。

在子程式層上設計:

對於子程式而言,內聚i型那個是指子程式中各種操作之間聯絡的緊密程度。而建立子程式的目標就是讓乙個子程式只把一件事做好,不再做任何其他事->也稱為功能的內聚性!

一般來說,其他型別的內聚性都是不可取的。他們都會導致**組織的混亂、難於除錯、不變修改。如果乙個子程式具有不良的內聚性,那最好還是花功夫重新編寫,使其具有更好的內聚性,而不是再花精力精確地診斷問題所在了。

好的子程式名字:

好的子程式名字能清晰地描述子程式所做到的一切。

1.描述子程式所做的所有事情:子程式名字應當描述其所有的輸出結果以及***,如果寫的有一些***的子程式,就會引起很多又長又笨的名字。

解決的方法不是使用某個描述性較弱的子程式名,而應該換一種方式編寫程式,直接了當地解決問題而不是產生***。

2.避免使用無意義的、模糊或表達不清的動詞:有時乙個子程式中僅有的問題就是其名字表述不清,而子程式本身也許設計的很好;有時動詞之所以模糊是由於子程式執行的操作就是含糊不清的。

3.不要僅通過數字來形成不同的子程式名字:如output1,output2,這樣很難有區分度

4.根據需要確定子程式名字的長度:研究表明,變數名的最佳長度是9到15個

5.給函式命名時要對返回值有所描述:函式有返回值,因此,函式的命名要應該針對其返回值進行。

6.給過程起名時使用語氣強烈的東西加賓語的形式:乙個具有功能內聚性的過程通常是針對乙個物件執行一種操作。

7.準確使用對仗詞

8.為常用操作確立命名規則:防止乙個專案中不同程式設計人員設定自己的函式命名,造成不同程式設計人員要了解其他人員的函式內部實現細節。

子程式可以寫多長

如果要編寫一段超過200行**的子程式,那就要小心了。對於超過200行**的子程式來說,沒有哪項研究發現他能降低成本和/或降低錯誤率,而且在超過200行後,遲早會在可讀性方面遇到問題。

如何使用子程式引數:

1.按照一定的順序組織子程式引數排序(輸入-修改-輸出):不要隨機地或按字母順序排列引數,而應該先列出僅作為輸入用途的引數,然後是即作為輸入有作為輸出用途的引數,最後才是僅作為輸出用途的引數。

2.考慮自己建立in和out關鍵字

3.如果幾個子程式都用了類似的一些引數,應該讓這些引數的排列順序保持一致。

4.使用所有引數:既然往子程式中傳遞了乙個引數,就一定要用到這個引數。

5.把狀態或出錯變數放在最後

6.不要把子程式的引數用作工作變數:把傳入的子程式的引數用作工作變數是很危險的,應該使用區域性變數。

7.在介面中對引數的假定加以說明

應該對那些介面引數的假定進行說明呢?

a引數是僅用於輸入的、要被修改的、還是僅用於輸出的

b表示數量的引數的單位

c如果沒有列舉型別的話,應該說明狀態**和錯誤值的含義

d所能接受的數值範圍(如32位資料溢位問題)

e不該出現的特定數值(如除數不能為零)

8.把子程式的引數個數限制在大約7個以內

9.考慮對引數採用某種表示輸入、修改、輸出的命名規則

10.為子程式傳遞用以維持其介面抽象的變數或物件:

子程式的介面要表達何種抽象?如果要表達的抽象是子程式期望3想的定的資料,但這3項資料只是碰巧由同一物件所提供的,那就應該單獨傳遞這3項數。然而,如果子程式介面要表達的抽象是一直擁有某個特定物件,且該子程式要對這一物件執行這樣那樣的操作,如果單獨傳遞3項特定的資料,那就是破壞了介面的抽象。

如果採用傳遞整個物件的做法,並發現自己是建立物件,把被呼叫子程式所需的3項資料填入該物件,在呼叫過子程式後又從物件中取出3項資料的值,那就是乙個證據,說明應該值傳遞那3個資料而不是整個物件。

如果發現自己常需要修改程式的參數列,而每次修改的引數都是來自於同乙個物件,那就說明應該傳遞整個物件而不是個別資料項了。

11.使用具名引數

12.確保實際引數與形式引數相匹配:形式引數是指在子程式中宣告的變數。實際引數是指在實際的子程式呼叫中用到的變數、常量或表示式。

關於函式的返回值:

檢查所有可能的返回路徑

不要返回指向區域性資料的引用或指標

如何寫好遊記類作文

唐人街 如何寫好遊記類作文 1 寫作導引 遊記類文章為我們描繪了一幅幅如詩般的畫卷,讓我們在閱讀中領略了大自然的美景。那麼,怎樣才能寫好這類文章呢?一 記敘要有線索。寫遊記類文章時,要把遊覽的過程交待清楚,這就需要有線索了。這線索就是寫作的順序,常用的有時間先後順序和地點轉換順序。時間先後順序就是根...

如何寫好敘事類記敘文

敘事,是記敘文的主要功能。同樣一件事,不同的人描述會產生不同的藝術效果。要想把一件難忘的事生動地描述出來,需要注意下面幾個方面 一 點面結合,詳略得當 清人唐彪曾說 詳略者,要審題之輕重為之。題意輕者為略,重者宜詳。在敘述某件事情的過程中,為了使文章結構繁簡得當,我們可以採用點上詳,面上略的剪裁方式...

如何寫好的策劃

策 就是道破天機,也就是揭示事務本質的意思 劃 就是刻劃藍圖的意思,策劃 合在一起就是 道破天機,導引潮流 的意思。其實 策劃 在中國有兩個組織,各有不同的含義,乙個是以陳放等點子人士組成的中國策劃研究院,為土生的中國式策劃。另乙個就是世界策劃聯合會中國分支機構,以史憲文為首,主要培訓世策聯認證策劃...