從「概念的完整性」角度對複雜類進行分拆

2021-04-20 08:23:13 字數 459 閱讀 7858

從「概念的完整性」角度對複雜類進行分拆

黃國強 2008-9-26

「人月神化」這本書最早提出了「概念的完整性」這個重要的概念。下面的例子是利用這個原理來分拆乙個複雜類。下面是 csample 的標頭檔案:

class csample

;顯然,這個類承擔了兩條規則的保證。而且,兩條規則之間沒有任何關係。因而,我們可以重構為如下**的形式。

class csample_1

;class csample_2

;class csample

;顯然,重構後的csample的**少了很多。更容易保持內部的規則的一致性。因為它把部分規則委託給其他類來保證。總結一下,在「按契約設計」(design by contract)理論中的不變式講的就是乙個類在任何操作完成後,都有一些不變的規則。這些規則的完整統一的維護是類的主要職責,這些不變規則的全部構成了這個類的概念完整性。

概念完整性

在 人月神話 中,布魯克斯老先生將維護軟體的 概念完整性 作為軟體開發的核心問題。軟體之所以很複雜 難以維護,根本原因就在於軟體的概念完整性遭到了破壞,甚至開發團隊的成員從來就沒有意識到有必要去維護軟體的概念完整性,他們並不是乙個真正的團隊,只是一些自行其事的開發人員,碰巧在乙個團隊中一起堆 而已。...

訊號完整性 PCB設計中的訊號完整性

pcb 走線 1 兩條傳輸線間距滿足 3w原則可克服傳輸線之間的干擾。2 避免90 彎曲線,用 135 的斜線代替 90 彎線。3 電源線和地線滿足 20h原則,即地線要長於電源線 20h,這裡 h為訊號導線距參考地平面的高度。4 高速時鐘線由地線護送,可減少串擾。5 對於蛇形線,平行部分的最小間距...

資料的完整性 SQL

第四 資料的完整性 切換資料庫 use master go 如果已存在這個資料庫,則先刪除該資料庫 if exists select from sysdatabases where name dbstudent drop database dbstudent go 建立資料庫 create data...