模塊化設(shè)計(jì) 模塊則是指數(shù)據(jù)及作用于數(shù)據(jù)的子程序的集合。模塊也可能是指,,可以提供一系列互相聯(lián)系功能的子程序集合,,而這些子程序之間不一定有公共的數(shù)據(jù)。 6.1 模塊化:內(nèi)聚性與耦合性 模塊的內(nèi)聚性準(zhǔn)則,,與單個(gè)子程序的內(nèi)聚性準(zhǔn)則一樣,、 模塊與程序其它部分間的耦合標(biāo)準(zhǔn)與子程序間的耦合標(biāo)準(zhǔn)也是類似的。 6.2 信息隱蔽 常見需要隱含的信息 容易被改動(dòng)的區(qū)域 · 復(fù)雜的數(shù)據(jù) · 復(fù)雜的邏輯 · 在編程語言層次上的操作 6.3 建立模塊的理由 6.4 任何語言中實(shí)現(xiàn)模塊 模塊包括數(shù)據(jù),、數(shù)據(jù)類型,、數(shù)據(jù)操作以及公共和局部操作的區(qū)分等。 數(shù)據(jù)需要在三個(gè)層次上可以被存取和隱含,,在局部,,在模塊中及在全局中。對(duì)于數(shù)據(jù)類型的可存取性和可隱含性的要求,,與對(duì)數(shù)據(jù)的要求是類似的,。對(duì)模塊層次上的子程序的要求與對(duì)數(shù)據(jù)的要求是類似的。 C的支持 雖然用C語言編程的程序員們并不習(xí)慣在C中使用模塊,但事實(shí)上C也直接支持模塊化,。每一個(gè)C源文件都可以同時(shí)含有數(shù)據(jù)和函數(shù),,可以把這些數(shù)據(jù)和函數(shù)說明為Static,這將使它們只在源文件內(nèi)部才能使用,。也可以不把它們說明為Static,,此時(shí)它們?cè)谠次募庖部梢允褂谩.?dāng)每一個(gè)源文件都被當(dāng)作模塊時(shí),,C就完全支持模塊化了,。 由于源文件和模塊并不完全相同,你需要為每一個(gè)源文件創(chuàng)建兩個(gè)頭文件——一個(gè)作為公用,、模塊頭文件,,另一個(gè)作為專用的、源文件頭文件,。在源文件的公用頭文件中,,只放入公用數(shù)據(jù)和函數(shù)說明。 6.4 檢查表 模塊的質(zhì)量 XXXXXXX 6.5 小結(jié) (1)不管調(diào)用哪一個(gè),,子程序與模塊的不同是很重要的,,要認(rèn)真考慮子程序與模塊的設(shè)計(jì)。 (2)從模塊數(shù)據(jù)是被幾個(gè)子程序使用的這一角度來說,,它與全局?jǐn)?shù)據(jù)是相同的,,但從可以使用它的子程序是有限的,而且清楚地知道是哪些子程序可以使用它這一角度來說,,模塊數(shù)據(jù)與全局?jǐn)?shù)據(jù)又是不同的,。因此,可以使用模塊數(shù)據(jù)而沒有全局?jǐn)?shù)據(jù)的危險(xiǎn),。 |
|