occ體系結(jié)構(gòu)和基本概念

occ體系結(jié)構(gòu)和基本概念

ID:23788191

大小:2.00 MB

頁數(shù):117頁

時(shí)間:2018-11-10

occ體系結(jié)構(gòu)和基本概念_第1頁
occ體系結(jié)構(gòu)和基本概念_第2頁
occ體系結(jié)構(gòu)和基本概念_第3頁
occ體系結(jié)構(gòu)和基本概念_第4頁
occ體系結(jié)構(gòu)和基本概念_第5頁
資源描述:

《occ體系結(jié)構(gòu)和基本概念》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、第1章OCC體系結(jié)構(gòu)和基本概念OCC是用面向?qū)ο蠓椒ㄔO(shè)計(jì)的一個(gè)CAD基礎(chǔ)平臺(tái)(軟件)。為了能從整體上把握OCC的組織情況,也為了方便后續(xù)章節(jié)的討論,本章將介紹OCC體系結(jié)構(gòu)和幾個(gè)基本概念。1.1OCC體系結(jié)構(gòu)1.1.1面向?qū)ο蠓椒ê兔嫦驅(qū)ο蟮能浖こ淘诮榻BOCC體系結(jié)構(gòu)之前,先介紹面向?qū)ο蠓椒ǖ母拍詈褪裁唇忻嫦驅(qū)ο蟮能浖こ?。在面向?qū)ο蟮姆椒ǔ霈F(xiàn)以前,程序員都采用面向過程的程序設(shè)計(jì)方法,其中典型的是結(jié)構(gòu)化程序設(shè)計(jì)。這種設(shè)計(jì)的思路是:自頂向下、逐步求精。其程序結(jié)構(gòu)是按功能劃分為若干個(gè)基本模塊,這些模塊形成一個(gè)樹狀結(jié)構(gòu)。各模塊間的

2、關(guān)系盡可能簡單,在功能上相對(duì)獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。其模塊化實(shí)現(xiàn)的具體方法是使用子程序。結(jié)構(gòu)化程序設(shè)計(jì)由于采用了模塊分解與功能抽象以及自頂向下、分而治之的方法,從而有效的將一個(gè)復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)[2]。這種設(shè)計(jì)方法的致命缺點(diǎn)是:程序的可重用性差。因?yàn)樗褦?shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨(dú)立的實(shí)體,當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過程都要進(jìn)行相應(yīng)的修改。而面向?qū)ο蟮姆椒▽?shù)據(jù)及對(duì)數(shù)據(jù)的操作放在一起,作為一個(gè)相互依存、不可分離的整體——對(duì)象。對(duì)同類

3、型對(duì)象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理。類通過一個(gè)簡單的外部接口與外界發(fā)生關(guān)系,對(duì)象與對(duì)象之間通過消息進(jìn)行通信[2]。這樣,程序模塊間的關(guān)系更為簡單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障,實(shí)現(xiàn)了“高內(nèi)聚”“低耦合”。另外,繼承與多態(tài)性可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便。面向?qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面應(yīng)用。它包括面向?qū)ο蟮姆治觯∣OA)、面向?qū)ο蟮脑O(shè)計(jì)(OOD)、面向?qū)ο蟮木幊蹋∣OP)、面向?qū)ο蟮臏y(cè)試(OOT)和面向?qū)ο蟮能浖S護(hù)(OOSM

4、)等主要內(nèi)容[2]。1.1.1OCC的體系結(jié)構(gòu)整個(gè)OCC就是用面向?qū)ο蠓椒ㄔO(shè)計(jì)出來的一個(gè)對(duì)象庫。之所以用面向?qū)ο蠓椒ǘ皇敲嫦蜻^程方法,是因?yàn)橛妹嫦驅(qū)ο蠓椒ㄓ腥齻€(gè)好處。第一,由面向?qū)ο蠓椒ǔ橄蟮南到y(tǒng)結(jié)構(gòu)能映射到數(shù)據(jù)庫結(jié)構(gòu)中,很容易實(shí)現(xiàn)程序與數(shù)據(jù)結(jié)構(gòu)的封裝。第二,面向?qū)ο蠓椒◤乃幚淼臄?shù)據(jù)入手,以數(shù)據(jù)為中心來描述系統(tǒng),數(shù)據(jù)相對(duì)于功能而言,具有更強(qiáng)的穩(wěn)定性,這樣設(shè)計(jì)出的系統(tǒng)模型往往能較好地映射問題域模型[3]。第三,對(duì)象、類、繼承性、多態(tài)性的引入使用,令面向?qū)ο蟮脑O(shè)計(jì)方法能更好地生產(chǎn)可重用的軟件構(gòu)件和解決軟件的復(fù)雜性問題。不過,面

5、向?qū)ο蟮脑O(shè)計(jì)方法要求開發(fā)人員必須花很大精力去分析對(duì)象是什么,每個(gè)對(duì)象應(yīng)該承擔(dān)什么責(zé)任,所有這些對(duì)象怎樣很好地合作以完成預(yù)定的目標(biāo)。這樣做換來的好處是:提高了目標(biāo)系統(tǒng)的可重用性,減少了生命周期后續(xù)階段的工作量和可能犯的錯(cuò)誤,提高了軟件的可維護(hù)性[3]。用面向?qū)ο蠓椒ê蛙浖こ趟枷敕治?,整個(gè)OCC由五個(gè)模塊組成,分別是基礎(chǔ)類模塊、建模數(shù)據(jù)模塊、建模算法模塊、可視化模塊、數(shù)據(jù)交換模塊和應(yīng)用程序模塊。其中,建模數(shù)據(jù)模塊主要提供二維和三維幾何模型的數(shù)據(jù)結(jié)構(gòu),也稱數(shù)據(jù)結(jié)構(gòu)模塊。一個(gè)模塊主要由一個(gè)或幾個(gè)工具箱構(gòu)成。當(dāng)然它也可以包含一些執(zhí)行體

6、和資源體等。就結(jié)構(gòu)上看,一個(gè)工具箱就是一個(gè)共享庫(如.so或.dll類型的文件)。每個(gè)工具箱由一個(gè)或幾個(gè)包組成。而每個(gè)包則由許多類組成,例如,一個(gè)幾何包包含點(diǎn)類、線類和圓類等。在同一個(gè)包中,不能含有相同名字的兩個(gè)類。使用類的時(shí)候,類名要以包名作前綴,如Geom_Circle。圖2.1簡要說明了包的內(nèi)容。圖2.1包的內(nèi)容1.1基本概念1.1.1類和泛化1、類OCC是一個(gè)面向?qū)ο蟮能浖?,與所有面向?qū)ο蟮能浖粯樱渥罨镜能浖煞质穷?。一個(gè)類就是一種數(shù)據(jù)類型的實(shí)現(xiàn)。類有自己的行為(由它的函數(shù)提供的服務(wù))和結(jié)構(gòu)(類的數(shù)據(jù)結(jié)構(gòu)——用來

7、存儲(chǔ)其數(shù)據(jù))。OCC中所有類按其實(shí)現(xiàn)方式可以分三種:普通類、推遲類和通用類。普通類含有實(shí)例方法,可以被直接實(shí)例化。而推遲類則不能被實(shí)例化。推遲類的作用在于使一層類共同擁有一種給定的行為,而這些行為的發(fā)生取決于普通類(推遲類的派生類)的實(shí)現(xiàn)。通過推遲類的創(chuàng)建,可以保證所有派生自同一推遲類的普通類擁有相同的繼承行為。在C++中,與推遲類等同的是抽象類。至于通用類,它提供了一套處理其他數(shù)據(jù)類型的功能行為。通用類的實(shí)例化需要為它的參數(shù)指定類型。通用類的作用與C++中模板類的作用一樣。2、泛化這里所謂的泛化,主要是通過通用類的實(shí)現(xiàn)來獲得

8、的。通用類分兩步實(shí)現(xiàn)。首先,對(duì)一個(gè)通用類進(jìn)行聲明以建立模型。在CDL(CASCADE定義語言)中,通用類被聲明為對(duì)不確定類型數(shù)據(jù)項(xiàng)的操作。這里的數(shù)據(jù)項(xiàng)就是通用類中的形參。對(duì)通用類的形參進(jìn)行限制,就可以使形參類型成為普通類的子類。要注意的是:聲明一個(gè)通用類并沒有創(chuàng)建一個(gè)新的類類

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。