第10章面向?qū)ο蟮姆椒?/STRONG>
面向?qū)ο蟮姆椒ㄊ墙窈筌浖_發(fā)方法的主流。學(xué)習(xí)本章,最好是學(xué)過面向?qū)ο蟪绦蛟O(shè)計(jì)語言,這樣可以對(duì)對(duì)象、類、類的層次結(jié)構(gòu)、方法、消息等概念更容易理解。本章總的要求是,掌握面向?qū)ο蟮幕舅枷搿⒒靖拍、基本原理,掌握三種模型的基本概念和構(gòu)造方法,掌握面向?qū)ο蟮姆治、設(shè)計(jì)和實(shí)現(xiàn)的過程。
一、面向?qū)ο蟮幕靖拍?/STRONG>
1、什么面向?qū)ο?首先了解幾個(gè)概念:
1、對(duì)象:對(duì)象是人們要進(jìn)行研究的任何事物。具體一點(diǎn)講就是研究對(duì)象。它可以是有形實(shí)體,也可以是作用、事件、性能說明等,當(dāng)然,如果女朋友成為你研究的對(duì)象時(shí),對(duì)象也可以是你的女朋友。
2、對(duì)象的狀態(tài)和行為:對(duì)象有自身的狀態(tài),比如你的女朋友有她的姓名(叫小麗)、年齡(22歲)、工作單位等。對(duì)象還有操作,用于改變對(duì)象的狀態(tài),對(duì)象及其操作就是對(duì)象的行為,比如"小麗.跳槽到(某公司)"這個(gè)行為將使她的工作單位這個(gè)狀態(tài)發(fā)生變化。
3、類:具有相同或相似性質(zhì)的對(duì)象的抽象就是類。如桃樹、李樹、樟樹等是具體的樹,抽象之后得到"樹"這個(gè)類。類具有屬性,屬性是狀態(tài)的抽象,如一棵李樹的高度是3米,樟樹是10米,樹則抽象出一個(gè)屬性"高度"。類具有操作,它是對(duì)象行為的抽象。
4、類的結(jié)構(gòu):有兩種,一種是"一般-具體"結(jié)構(gòu),如植物、樹都是類,它們之間是抽象到具體的關(guān)系,即樹是一種(is a)植物。還有一種就是"整體-部分"結(jié)構(gòu),如計(jì)算機(jī)是類、CPU也是類,則計(jì)算機(jī)與CPU之間就是整體與部分的關(guān)系。
5、消息和方法:對(duì)象之間進(jìn)行通信的構(gòu)造叫做消息,比如小麗是一個(gè)對(duì)象,上司發(fā)出一個(gè)消息:小麗.出差到(深圳)。這樣,相應(yīng)的對(duì)象接收到這個(gè)消息就會(huì)給予響應(yīng),在這個(gè)消息中,小麗是對(duì)象名,出差到就是方法名,深圳就是參數(shù)。在類中操作的實(shí)現(xiàn)過程叫做方法。上面的出差到(某地)這個(gè)方法如何實(shí)現(xiàn)呢,就是買車票,乘車到某地。這個(gè)過程就是方法。
總之,面向?qū)ο筮@種思想很符合人們觀察世界的自然思想。在很多時(shí)候我們可以用自然的觀點(diǎn)去理解面向?qū)ο蟆?/P>
2、面向?qū)ο蟮奶卣饔兴狞c(diǎn):對(duì)象唯一性、分類性、繼承性和多態(tài)性。
3、面向?qū)ο蟮囊兀撼橄、封裝性、共享性
4、面向?qū)ο蠹夹g(shù)強(qiáng)調(diào)的是對(duì)象結(jié)構(gòu)而不是程序結(jié)構(gòu)。
5、面向?qū)ο蟮拈_發(fā)方法主要有以下幾種:Coad方法、Booch方法、OMT方法和OOSE方法,最新的統(tǒng)一建模語言UML則不僅統(tǒng)一了Booch方法,OMT方法、OOSE方法,而且對(duì)其作了進(jìn)一上的發(fā)展,最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語言。
二、面向?qū)ο蟮哪P?簡單應(yīng)用)
面向?qū)ο蟮哪P桶ㄈ齻(gè),它們分別是:描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型、描述系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型和和描述系統(tǒng)功能的功能模型。這三種模型都涉及到數(shù)據(jù)、控制和操作等共同的概念,只是每種模型描述的側(cè)重點(diǎn)不同。這三種模型從三個(gè)不同但又密切相關(guān)的角度模擬目標(biāo)系統(tǒng),它們各自從不同的側(cè)面反映了系統(tǒng)的實(shí)質(zhì)性內(nèi)容,綜合起來則全面反映了對(duì)目標(biāo)系統(tǒng)的需求。
1、對(duì)象模型:它表示了靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它是從客觀世界實(shí)體的對(duì)象關(guān)系角度來描述,表現(xiàn)了對(duì)象的相互關(guān)系。該模型主要關(guān)系的是系統(tǒng)中對(duì)象的結(jié)構(gòu)、屬性和操作,使用了對(duì)象圖的工具來刻畫,它是分析階段三個(gè)模型的核心,也是其他兩個(gè)模型的框架。涉及及的概念有,對(duì)象和類、關(guān)聯(lián)和鏈。
2、動(dòng)態(tài)模型:是與時(shí)間和變化有關(guān)的系統(tǒng)性質(zhì)。該模型描述了系統(tǒng)的控制結(jié)構(gòu),它表示了瞬時(shí)的、行為化的系統(tǒng)控制性質(zhì),它關(guān)系的是系統(tǒng)的控制,操作的執(zhí)行順序,它從對(duì)象的事件和狀態(tài)的角度出發(fā),表現(xiàn)了對(duì)象的相互行為。該模型描述的系統(tǒng)屬性是觸發(fā)事件,事件序列、狀態(tài)、事件與狀態(tài)的組織。使用狀態(tài)圖作為描述工具。涉及的重要概念是事件、狀態(tài)、操作等。
3、功能模型:描述了系統(tǒng)的所有計(jì)算。功能模型指出發(fā)生了什么,動(dòng)態(tài)模型確定什么時(shí)候發(fā)生,而對(duì)象模型確定發(fā)生的客體。功能模型表明一個(gè)計(jì)算如何從輸入值得到輸出值,它不考慮所計(jì)算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖說明數(shù)據(jù)流是如何從外部輸入、經(jīng)過操作和內(nèi)部存儲(chǔ)輸出到外部的。功能模型也包括對(duì)象模型中值的約束條件。功能模型說明對(duì)象模型中操作的含義、動(dòng)態(tài)模型中動(dòng)作的意義以及對(duì)象模型中約束的意義。相關(guān)的概念有:數(shù)據(jù)流圖中的處理、數(shù)據(jù)流、動(dòng)作對(duì)象、數(shù)據(jù)存儲(chǔ)對(duì)象等。
三、面向?qū)ο蟮姆治?簡單應(yīng)用)
面向?qū)ο蠓治龅哪康氖菍?duì)客觀世界的系統(tǒng)進(jìn)行建模。分析問題有三種用途:用來明確問題需求;為用戶和開發(fā)人員提供明確需求;為用戶和開發(fā)人員提供一個(gè)協(xié)商的基礎(chǔ),作為后繼的設(shè)計(jì)和實(shí)現(xiàn)的框架。通過分析,建立對(duì)象模型、動(dòng)態(tài)模型和功能模型。
四、面向?qū)ο蟮脑O(shè)計(jì)(領(lǐng)會(huì))
1、面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則:
(1)模塊化:對(duì)象就是模塊,它是把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的模塊。
(2)抽象:包括過程抽象、數(shù)據(jù)抽象、規(guī)格說明抽象及參數(shù)化抽象等。
(3)信息隱蔽:在面向?qū)ο蠓椒ㄖ,信息隱蔽通過對(duì)象的封裝性來實(shí)現(xiàn)。
(4)低耦合:低耦合是設(shè)計(jì)的一個(gè)重要標(biāo)準(zhǔn),應(yīng)該避免對(duì)象之間的高耦合,強(qiáng)調(diào)對(duì)象間的低耦合。
(5)高內(nèi)聚:在面向?qū)ο笤O(shè)計(jì)中存在三種內(nèi)聚:操作內(nèi)聚、類內(nèi)聚及一般-具體內(nèi)聚,緊密的繼承耦合與高度的一般--具體內(nèi)聚是一致的。
2、面向?qū)ο笤O(shè)計(jì)的啟發(fā)規(guī)則:
(1)設(shè)計(jì)結(jié)果應(yīng)該清晰易懂
(2)一般--具體結(jié)構(gòu)的深度應(yīng)適當(dāng)
(3)設(shè)計(jì)簡單的類
(4)使用簡單的協(xié)議
(5)使用簡單的操作
(6)把設(shè)計(jì)變動(dòng)減至最小
五、面向?qū)ο蟮膶?shí)現(xiàn)(領(lǐng)會(huì))
面向?qū)ο髮?shí)現(xiàn)主要包括兩項(xiàng)工作,把面向?qū)ο笤O(shè)計(jì)結(jié)果翻譯成用某種程序設(shè)計(jì)語言寫成的面向?qū)ο蟪绦?測試并調(diào)試面向?qū)ο蟪绦颉?/P>
在開發(fā)過程,類的實(shí)現(xiàn)是核心問題。在用面向?qū)ο箫L(fēng)格所寫的系統(tǒng)中,所有的數(shù)據(jù)都被封裝在類的實(shí)例中,而整個(gè)程序則被封裝在一個(gè)更高級(jí)的類中。
相關(guān)推薦:2010年下半年軟考試題及答案解析匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |